#include <bits/stdc++.h>
using namespace std;
static const double EPS = 1e-8;
int n, k, A;
int b[10], l[10];
int popcountll(unsigned long long x) {
  x = (x & 0x5555555555555555ULL) + ((x >> 1) & 0x5555555555555555ULL);
  x = (x & 0x3333333333333333ULL) + ((x >> 2) & 0x3333333333333333ULL);
  x = (x & 0x0f0f0f0f0f0f0f0fULL) + ((x >> 4) & 0x0f0f0f0f0f0f0f0fULL);
  x = (x & 0x00ff00ff00ff00ffULL) + ((x >> 8) & 0x00ff00ff00ff00ffULL);
  x = (x & 0x0000ffff0000ffffULL) + ((x >> 16) & 0x0000ffff0000ffffULL);
  return (x & 0x00000000ffffffffULL) + ((x >> 32) & 0x00000000ffffffffULL);
}
double rec(int d, int c, vector<int> &cd) {
  double res = 0;
  if (d == n) {
    int nl[10];
    for (int i = 0; i < n; i++) {
      nl[i] = min(100, l[i] + cd[i] * 10);
    }
    for (int mask = 0; mask < (1 << n); mask++) {
      double p = 1;
      for (int i = 0; i < n; i++) {
        if (mask & (1 << i))
          p *= nl[i] / 100.;
        else
          p *= (100 - nl[i]) / 100.;
      }
      if (popcountll(mask) > n / 2) {
        res += p;
        continue;
      }
      int B = 0;
      for (int i = 0; i < n; i++) {
        if (!(mask & (1 << i))) B += b[i];
      }
      res += p * (double)A / (A + B);
    }
    return res;
  }
  for (int i = 0; i <= c; i++) {
    cd[d] = i;
    double tres = rec(d + 1, c - i, cd);
    res = max(res, tres);
  }
  return res;
}
int main() {
  istream &fin = cin;
  ostream &fout = cout;
  FILE *fpin = stdin;
  FILE *fpout = stdout;
  fin >> n >> k >> A;
  for (int i = 0; i < n; i++) {
    fin >> b[i] >> l[i];
  }
  vector<int> cd(n);
  double res = rec(0, k, cd);
  fout << fixed << setprecision(15) << res << endl;
}
