#include <bits/stdc++.h>
using namespace std;
double t[100000], v[100000], tm[100000];
double n, a, d;
int val[100000];
inline double tr(int ind) {
  if (tm[ind]) return tm[ind];
  double tmax = v[ind] / a;
  double xmax = 0.5 * a * tmax * tmax;
  double ret = (xmax >= d ? sqrt(2 * d / a) : (tmax + (d - xmax) / v[ind]));
  tm[ind] = ret;
  return ret;
}
int main() {
  scanf("%lf%lf%lf", &n, &a, &d);
  for (int i = 0; i < n; i++) {
    scanf("%lf%lf", &t[i], &v[i]);
    val[i] = i;
  }
  for (int i = 1; i < n; i++) {
    if (tr(val[i - 1]) - tr(i) > t[i] - t[val[i - 1]]) {
      val[i] = val[val[i - 1]];
    }
  }
  double last = -1;
  for (int i = 0; i < n; i++) {
    double cur = tr(val[i]) + t[val[i]];
    printf("%.10f\n", (cur > last ? cur : last));
    last = cur;
  }
  return 0;
}
