#include <iostream>
#include <vector>

using namespace std;

int main() {
    int n, m;
    cin >> n >> m;
    
    double r;
    cin >> r;
    
    vector<int> d(n);
    vector<long long> w(n);
    
    for (int i = 0; i < n; i++) {
        cin >> d[i] >> w[i];
    }
    
    vector<long double> waste(n + 1, 0.0);
    
    for (int i = 1; i <= n; i++) {
        waste[i] = waste[i - 1] * (1.0 - r) + w[i - 1] * r;
    }
    
    for (int i = 0; i < m; i++) {
        int q;
        cin >> q;
        
        // Используем интерполяцию для нахождения количества отходов в интересующий день
        int j = 0;
        while (j < n && d[j] < q) {
            j++;
        }
        
        if (j == 0) {
            cout << fixed << waste[j] << endl;
        } else {
            long double result = waste[j - 1] + (q - d[j - 1]) * (w[j - 1] * r);
            cout << fixed << result << endl;
        }
    }
    
    return 0;
}