#include <bits/stdc++.h>
float t[100005] = {0};
float v[100005] = {0};
float n, a, d;
double arr(int i) {
  double acctime, accdist, ctime, ans;
  acctime = v[i] / a;
  accdist = 0.5 * a * (acctime) * (acctime);
  if (accdist > d) {
    ans = sqrt(2 * d / a);
  } else {
    ctime = (d - accdist) / v[i];
    ans = ctime + acctime;
  }
  return t[i] + ans;
}
int main(void) {
  int i, j, k;
  double pre = 0, now = 0;
  scanf("%f %f %f", &n, &a, &d);
  for (i = 0; i < n; i++) {
    scanf("%f %f", &t[i], &v[i]);
  }
  for (j = 0; j < n; j++) {
    now = arr(j);
    if (now < pre) {
      printf("%.6llf\n", pre);
    } else {
      printf("%.6llf\n", now);
      pre = now;
    }
  }
  return 0;
}
