#include <bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/STACK:56777216")
int N;
double A, D;
double T[100000];
double V[100000];
int main() {
  cin.sync_with_stdio(false);
  cout.precision(10);
  cin >> N >> A >> D;
  for (int i = 0; i < N; i++) {
    cin >> T[i] >> V[i];
  }
  double tArrive = -1;
  for (int i = 0; i < N; i++) {
    double tArrive2;
    double tReper = sqrt(2 * D / A);
    double vReper = tReper * A;
    if (vReper < V[i]) {
      tArrive2 = tReper;
    } else {
      tReper = V[i] / A;
      double S = A * tReper * tReper * 0.5;
      tArrive2 = tReper + (D - S) / V[i];
    }
    tArrive2 += T[i];
    tArrive = max(tArrive, tArrive2);
    cout << fixed << tArrive << '\n';
  }
  return 0;
}
