#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:256000000")
using namespace std;
int main() {
  double start = static_cast<double>(clock());
  int n;
  double a, d;
  cin >> n >> a >> d;
  vector<double> t(n), V(n);
  for (int i = 0; i < n; i++) cin >> t[i] >> V[i];
  double prevFinished = -1.f;
  for (int i = 0; i < n; i++) {
    double accelerationD = V[i] * V[i] / (a * 2);
    double accelerationT = V[i] / a;
    double couldFinish = 0.f;
    if (accelerationD > d) {
      couldFinish = t[i] + sqrt(2 * d / a);
    } else {
      couldFinish = t[i] + accelerationT + (d - accelerationD) / V[i];
    }
    if (couldFinish < prevFinished) {
      cout.precision(13);
      cout << prevFinished << endl;
    } else {
      cout.precision(13);
      cout << couldFinish << endl;
      prevFinished = couldFinish;
    }
  }
  return 0;
}
