#include <bits/stdc++.h>
using namespace std;
int n, k, a, lev[16], loy[16], suf;
double ret;
double dp[16][(2 << 8)];
double calc(int pos, int mask) {
  if (pos == n) {
    int need = suf - __builtin_popcount(mask);
    if (need <= 0)
      return 1.0;
    else {
      int b = 0;
      for (int i = 0; i < (n); ++i)
        if (!((mask & (1LL << i)) != 0LL)) b += lev[i];
      return double(a) / double(a + b);
    }
  }
  double &ret = dp[pos][mask];
  if (ret != -1) return ret;
  ret = calc(pos + 1, mask) * double(100.0 - loy[pos]) / 100.0 +
        calc(pos + 1, mask + (1 << pos)) * double(loy[pos]) / 100.0;
  return ret;
}
int llamadas = 0;
double calcprob() {
  fill(&dp[0][0], &dp[16][0], -1.0);
  llamadas++;
  return calc(0, 0);
}
void simu(int pos, int candy) {
  if (pos == n) {
    ret = max(ret, calcprob());
    return;
  }
  int minus = 0;
  simu(pos + 1, candy);
  for (int i = 0; i < (candy); ++i) {
    if (loy[pos] == 100) break;
    minus++;
    loy[pos] += 10;
    simu(pos + 1, candy - i - 1);
  }
  loy[pos] -= minus * 10;
}
int main() {
  cin >> n >> k >> a;
  for (int i = 0; i < (n); ++i) cin >> lev[i] >> loy[i];
  suf = n / 2 + 1;
  ret = 0.0;
  simu(0, k);
  printf("%.10f\n", ret);
  return 0;
}
