#include <bits/stdc++.h>
using namespace std;
const double eps = (int)1e-12;
const int MaxN = (int)1e5 + 1;
double T[MaxN];
int main() {
  int n, i;
  double a, d1, d, dd, tt, v, t, v_k;
  cin >> n >> a >> d;
  T[0] = 0;
  for (i = 1; i <= n; i++) {
    cin >> t >> v;
    d1 = d;
    v_k = sqrt(2 * a * d);
    if (v_k + eps <= v)
      T[i] = max(T[i - 1], t + sqrt(2 * d1 / a));
    else {
      tt = v / a;
      dd = a * tt * tt / 2;
      d1 -= dd;
      T[i] = max(T[i - 1], t + tt + d1 / v);
    }
  }
  for (i = 1; i <= n; i++)
    cout << setiosflags(ios::fixed) << setprecision(10) << T[i] << endl;
  cin.get();
  cin.get();
}
