#include <bits/stdc++.h>
using namespace std;
struct point {
  double t, v;
} p[100005];
double c[100005];
int main() {
  double a, d;
  int n;
  while (scanf("%d%lf%lf", &n, &a, &d) != EOF) {
    memset(c, 0, sizeof(c));
    for (int i = 1; i <= n; i++) {
      scanf("%lf%lf", &p[i].t, &p[i].v);
      double t = p[i].v / a;
      double s = a * t * t / 2;
      if (s >= d)
        c[i] = (sqrt(2 * d / a)) + p[i].t;
      else
        c[i] = t + (d - s) / p[i].v + p[i].t;
    }
    printf("%lf\n", c[1]);
    int flag = 0;
    double ans = c[1];
    for (int i = 2; i <= n; i++) {
      if (c[i] > ans)
        printf("%lf\n", c[i]), ans = c[i];
      else {
        printf("%lf\n", ans);
      }
    }
  }
  return 0;
}
