#include <bits/stdc++.h>
using namespace std;
int tempo[100005], Vmax[100005];
double res[100005];
double solve(double Sf, double V, double a) {
  double t_0 = V / a;
  double reached = a * t_0 * t_0 / 2.0;
  if (reached >= Sf) {
    return sqrt(2 * Sf / a);
  } else {
    return (t_0 + ((Sf - reached) / V));
  }
}
int main(int argc, const char *argv[]) {
  int n, a, d;
  cin >> n >> a >> d;
  for (int i = 1; i <= n; i++) cin >> tempo[i] >> Vmax[i];
  for (int pos = 1; pos <= n;) {
    double tempoAtual = solve(d, Vmax[pos], a) + tempo[pos];
    while (pos <= n) {
      if (solve(d, Vmax[pos], a) + tempo[pos] <= tempoAtual) {
        res[pos] = tempoAtual;
        pos++;
      } else
        break;
    }
  }
  for (int i = 1; i <= n; i++) printf("%.6f\n", res[i]);
  return 0;
}
