#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9;
const int MOD = 1e9 + 7;
const long long INF64 = 1e18;
const long double EPS = 1e-7;
mt19937 myrand(time(NULL));
const int N = 100 * 1000 + 13;
int n, ac, d;
pair<int, int> a[N];
long double t[N];
bool read() {
  if (scanf("%d%d%d", &n, &ac, &d) != 3) return 0;
  for (int i = 0; i < (n); i++) scanf("%d%d", &a[i].first, &a[i].second);
  return 1;
}
void solve() {
  for (int i = 0; i < (n); i++) {
    long double cur = a[i].second * 1.0 / ac;
    t[i] = a[i].first;
    if (cur * cur * ac / 2 > d - EPS)
      t[i] += sqrtl(d * 2.0 / ac);
    else
      t[i] += cur + (d - cur * cur * ac / 2) / a[i].second;
    if (i && t[i] < t[i - 1]) t[i] = t[i - 1];
    printf("%.10f\n", (double)t[i]);
  }
}
int main() {
  while (read()) solve();
  return 0;
}
