#include <bits/stdc++.h>
int n, t1, t2;
double k;
struct data {
  double v1, v2, r;
  int n;
};
data a[1005];
void check(int x) {
  if (a[x].v1 > a[x].v2) {
    int t = a[x].v1;
    a[x].v1 = a[x].v2;
    a[x].v2 = t;
  }
}
double max(double a, double b) { return a > b ? a : b; }
bool sf(data a, data b) {
  if (a.r == b.r) return a.n < b.n;
  return a.r > b.r;
}
int main() {
  int i;
  scanf("%d%d%d%lf", &n, &t1, &t2, &k);
  for (i = 1; i <= n; i++) {
    scanf("%lf%lf", &a[i].v1, &a[i].v2);
    check(i);
    a[i].n = i;
    a[i].r = (a[i].v1 * t1 * (100 - k)) / 100 + t2 * a[i].v2;
    a[i].r = max(a[i].r, (a[i].v2 * t1 * (100 - k)) / 100 + t2 * a[i].v1);
  }
  std::sort(a + 1, a + n + 1, sf);
  for (i = 1; i <= n; i++) printf("%d %.2lf\n", a[i].n, a[i].r);
  return 0;
}
