#include <bits/stdc++.h>
using namespace std;
struct trolley {
  int t, v, ind;
  double ar;
} data[100010];
int main() {
  int n, a, d;
  cin >> n >> a >> d;
  double tmax = 0;
  for (int i = 0; i < (n); i++) {
    cin >> data[i].t >> data[i].v;
    data[i].ind = i;
    data[i].ar = data[i].t;
    double t = data[i].v / (double)a;
    if (0.5 * a * t * t >= d) {
      t = sqrt(2.0 * d / a);
      data[i].ar += t;
    } else {
      data[i].ar += t;
      data[i].ar += (d - (0.5 * a * t * t)) / data[i].v;
    }
    if (data[i].ar >= tmax) {
      tmax = data[i].ar;
      printf("%0.10lf\n", tmax);
    } else
      printf("%0.10lf\n", tmax);
  }
  return 0;
}
