#include <bits/stdc++.h>
using namespace std;
typedef int (*array)[2];
typedef double *B[2];
int main() {
  int n, x;
  double y;
  int tmp;
  int index = 0;
  cin >> n >> x >> y;
  double **p = new double *[n];
  for (int i = 0; i < n; ++i) p[i] = new double[2];
  while (index < n) {
    cin >> p[index][0] >> p[index][1];
    index++;
  }
  double time, distance;
  time = p[0][1] / x;
  distance = x * time * time / 2;
  if (distance >= y) {
    time = sqrt(2 * y / x) + p[0][0];
    cout << fixed << setprecision(10) << time << endl;
  } else {
    time += (y - distance) / (p[0][1]) + p[0][0];
    cout << fixed << setprecision(10) << time << endl;
  }
  for (int i = 1; i < n; ++i) {
    double t1 = double(p[i][1]) / x;
    double dis = x * t1 * t1 / 2;
    if (dis >= y) {
      t1 = sqrt(2 * y / x) + p[i][0];
      if (t1 <= time)
        cout << fixed << setprecision(10) << time << endl;
      else {
        time = t1;
        cout << fixed << setprecision(10) << time << endl;
      }
    } else {
      t1 += (y - dis) / p[i][1] + p[i][0];
      if (t1 <= time)
        cout << fixed << setprecision(10) << time << endl;
      else {
        time = t1;
        cout << fixed << setprecision(10) << time << endl;
      }
    }
  }
}
