#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void checkmin(T &a, T b) {
  if (b < a) a = b;
}
template <class T>
inline void checkmax(T &a, T b) {
  if (b > a) a = b;
}
int n;
double a, d;
double t[100061];
double v[100061];
double ans[100061];
double gett(double v) {
  double tj = v / a;
  double d1 = a * tj * tj / 2;
  double ret = 0;
  if (d1 >= d) {
    ret = sqrt(2 * d / a);
    return ret;
  }
  double d2 = d - d1;
  return d2 / v + tj;
}
int main() {
  scanf("%d%lf%lf", &n, &a, &d);
  for (int i = (0); i < (int)(n); i++) scanf("%lf%lf", t + i, v + i);
  for (int i = (0); i < (int)(n); i++) {
    double tmp = t[i] + gett(v[i]);
    if (i > 0) tmp = max(ans[i - 1], tmp);
    ans[i] = tmp;
  }
  for (int i = (0); i < (int)(n); i++) printf("%.10lf\n", ans[i]);
  return 0;
}
