#include <bits/stdc++.h>
using namespace std;
const int inf = 1 << 30;
const long long linf = 1LL << 60;
const int maxn = 100 * 1000 + 5;
long double res[maxn];
int a, d;
inline long double func(long double v) {
  long double dist_up = (long double)v * v / (2 * a);
  if (dist_up <= d) {
    return (long double)v / a + ((long double)d - dist_up) / v;
  } else {
    return sqrt((long double)2 * d / a);
  }
}
int main() {
  int n;
  scanf("%d%d%d", &n, &a, &d);
  for (int i = 0; i < n; ++i) {
    int t, v;
    scanf("%d%d", &t, &v);
    res[i] = t + func(v);
    if (i && res[i - 1] > res[i]) {
      res[i] = res[i - 1];
    }
  }
  cout.setf(ios::fixed);
  cout.precision(7);
  for (int i = 0; i < n; ++i) {
    cout << res[i] << "\n";
  }
  return 0;
}
