#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll MD = 1000000007;
ll md = 998244353;
ll exp(ll a, ll b) {
  ll r = 1ll;
  while (b > 0) {
    if (b & 1) {
      r = r * (a % md);
      r = (r + md) % md;
    }
    b /= 2;
    a = (a % md) * (a % md);
    a = (a + md) % md;
  }
  return (r + md) % md;
}
ll gcd(ll a, ll b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
ll pow_2(ll a, ll b) {
  ll res = 1;
  while (b) {
    if (b & 1) res = (res * a);
    a = (a * a);
    b >>= 1;
  }
  return res;
}
bool isPrime(ll a) {
  for (ll i = 3; (i * i) <= a; i += 2) {
    if ((a % i) == 0) return false;
  }
  if ((a != 2) && ((a % 2) == 0)) return false;
  if (a == 1) return false;
  return true;
}
int n, t1, t2, k;
double fun(int u, int v) {
  double d1, d2, d = 1.0;
  d1 = (u * t1 * (100 - k) * d / 100) + (v * t2 * d);
  d2 = (v * t1 * (100 - k) * d / 100) + (u * t2 * d);
  if (d1 - d2 > 1e-12)
    return d1;
  else
    return d2;
}
bool comp(pair<double, int> p1, pair<double, int> p2) {
  if (p1.first == p2.first)
    return p1.second < p2.second;
  else
    return p1.first > p2.first;
}
int main() {
  cin >> n >> t1 >> t2 >> k;
  vector<pair<double, int> > ans;
  int u, v;
  for (ll i = 0; i <= n - 1; ++i) {
    cin >> u >> v;
    ans.push_back({fun(u, v), i});
  }
  sort(ans.begin(), ans.end(), comp);
  for (auto z : ans) {
    cout << z.second + 1 << " " << fixed << setprecision(2) << z.first << endl;
  }
  return 0;
}
