#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1000000;
int n;
double a, d;
double v[MAXN], t[MAXN];
double arive[MAXN];
int main() {
  cin.sync_with_stdio(false);
  cin >> n >> a >> d;
  for (int i = 0; i < n; ++i) cin >> t[i] >> v[i];
  cout.precision(10);
  for (int i = 0; i < n; ++i) {
    double r = v[i] / a, d1 = a * r * r / 2;
    double res;
    if (d1 >= d) {
      res = sqrt(2 * d / a) + t[i];
    } else {
      res = r + (d - d1) / v[i] + t[i];
    }
    if (i > 0 && arive[i - 1] > res) res = arive[i - 1];
    arive[i] = res;
    cout << res << endl;
  }
}
