#include <bits/stdc++.h>
using namespace std;
double SY, A, B;
int num_pts = 0;
int N, Q;
double ans[200000];
double ox[500000];
double val[500000];
double bin_exact(double T) {
  int l = 0, r = num_pts;
  while (l < r) {
    int mid = (l + r) / 2;
    double x = ox[mid];
    if (x <= T)
      l = mid + 1;
    else if (x > T)
      r = mid;
  }
  return val[l - 1];
}
pair<double, double> bin_down(double T) {
  int l = 0, r = num_pts;
  while (l < r) {
    int mid = (l + r) / 2;
    double x = ox[mid];
    if (x <= T)
      l = mid + 1;
    else
      r = mid;
  }
  return make_pair(ox[l - 1], val[l - 1]);
}
pair<double, double> bin_up(double T) {
  int l = 0, r = num_pts;
  while (l < r) {
    int mid = (l + r) / 2;
    double x = ox[mid];
    if (x <= T)
      l = mid + 1;
    else
      r = mid;
  }
  return make_pair(ox[l], val[l]);
}
double func(double x, double y) {
  double _l, _r;
  if (x == A && false) {
    _l = bin_exact(x);
  } else {
    double t = A - x;
    t *= y / (y - SY);
    t += x;
    pair<double, double> LL = bin_down(t);
    pair<double, double> RR = bin_up(t);
    double tl = LL.first;
    double tr = RR.first;
    _l = (t - tl) / (tr - tl) * (RR.second - LL.second) + LL.second;
  }
  if (x == B && false) {
    _r = bin_exact(x);
  } else {
    double t = B - x;
    t *= y / (y - SY);
    t += x;
    pair<double, double> LL = bin_down(t);
    pair<double, double> RR = bin_up(t);
    double tl = LL.first;
    double tr = RR.first;
    _r = (t - tl) / (tr - tl) * (RR.second - LL.second) + LL.second;
  }
  return (_r - _l) * ((y - SY) / y);
}
int main(int argc, char **argv) {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int _SY, _A, _B;
  cin >> _SY >> _A >> _B;
  SY = _SY, A = _A, B = _B;
  cin >> N;
  ox[num_pts] = 0.0;
  val[num_pts] = 0.0;
  num_pts++;
  double tmp = 0;
  for (int i = 0; i < N; i++) {
    int a, b;
    cin >> a >> b;
    ox[num_pts] = a;
    val[num_pts] = tmp;
    num_pts++;
    tmp += b - a;
    ox[num_pts] = b;
    val[num_pts] = tmp;
    num_pts++;
  }
  ox[num_pts] = 2000000000.0;
  val[num_pts] = tmp;
  num_pts++;
  cin >> Q;
  for (int i = 0; i < Q; i++) {
    int x, y;
    cin >> x >> y;
    ans[i] = func(x, y);
  }
  cout << fixed << setprecision(7);
  for (int i = 0; i < Q; i++) {
    cout << ans[i] << '\n';
  }
  return 0;
}
