#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-10;
const int inf = (int)1e9;
const int maxn = (int)1e5 + 10;
int t[maxn], v[maxn];
double res[maxn];
double Do(double d, double a, double v) {
  if (d * 2 * a >= v * v) {
    double d2 = d - (v * v / 2 / a);
    return d2 / v + v / a;
  } else {
    return sqrt(2 * d / a);
  }
}
int main() {
  int n, a, d;
  scanf("%d%d%d", &n, &a, &d);
  for (int i = 0; i < n; i++) scanf("%d%d", &t[i], &v[i]);
  for (int i = 0; i < n; i++) res[i] = Do(d, a, v[i]) + t[i];
  double last = 0;
  for (int i = 0; i < n; i++) {
    last = max(last, res[i]);
    printf("%.20lf\n", last);
  }
  return 0;
}
