#include <bits/stdc++.h>
using namespace std;
const double inf = 1e9 + 7;
double t[100010], v[100010];
int n;
double a, d;
double ans[100010];
bool chk(double mid) {
  for (int i = 0; i < n; i++) {
    if (2 * a * d > v[i] * v[i])
      ans[i] = t[i] + v[i] / a + (d - v[i] * v[i] / a / 2) / v[i];
    else {
      ans[i] = sqrt(2 * a * d) / a + t[i];
    }
    if (i == 0) {
      if (ans[i] > mid)
        return 0;
      else
        continue;
    }
    if (max(ans[i], ans[i - 1]) > mid) {
      ans[i] = max(ans[i], ans[i - 1]);
      return 0;
    } else {
      ans[i] = max(ans[i], ans[i - 1]);
      continue;
    }
  }
  return 1;
}
int main() {
  scanf("%d%lf%lf", &n, &a, &d);
  for (int i = 0; i < n; i++) {
    scanf("%lf%lf", &t[i], &v[i]);
  }
  double r = inf, l = 0;
  double len = inf;
  double mid;
  while (len > 0.00001) {
    mid = (r + l) / 2;
    if (chk(mid))
      l = mid;
    else
      r = mid;
    len /= 2;
  }
  for (int i = 0; i < n; i++) printf("%.5lf\n", ans[i]);
}
