#include <bits/stdc++.h>
using namespace std;
struct xx {
  double t, v;
  int id;
} a[110000];
double f(double v, double dv, double d) {
  int i, j, k;
  double t1, s1, s2, t2, s;
  t1 = v / dv;
  s = 1 / 2.0 * dv * t1 * t1;
  if (s <= d)
    t1 += (d - s) / v;
  else {
    t1 = sqrt(2 * d / dv);
  }
  return t1;
}
int main() {
  int i, j, k, m, n;
  double fg, js, d, s, t, dv;
  while (scanf("%d%lf%lf", &n, &dv, &d) != EOF) {
    for (i = 1; i <= n; i++) {
      scanf("%lf%lf", &a[i].t, &a[i].v);
      a[i].id = i;
    }
    fg = f(a[1].v, dv, d) + a[1].t;
    printf("%.10lf\n", fg);
    for (i = 2; i <= n; i++) {
      t = f(a[i].v, dv, d) + a[i].t;
      printf("%.10lf\n", max(fg, t));
      fg = max(fg, t);
    }
  }
}
