#include <bits/stdc++.h>
using namespace std;
int n, k, A;
int b[10], l[10];
long double go(int x, int y) {
  if (x == n) {
    long double prob = 0;
    for (int mask = 0; mask < (int)1 << n; ++mask) {
      long double t = 1;
      for (int i = 0; i < (int)n; ++i)
        if (mask >> i & 1)
          t = t * (l[i] / 100.);
        else
          t = t * (1 - l[i] / 100.);
      if (__builtin_popcount(mask) <= n / 2) {
        int B = 0;
        for (int i = 0; i < (int)n; ++i)
          if (mask >> i & 1)
            ;
          else
            B += b[i];
        t = t * A / (long double)(A + B);
      }
      prob += t;
    }
    return prob;
  }
  long double ans = 0;
  int lold = l[x];
  for (int i = y; i >= 0; i--) {
    ans = max(ans, go(x + 1, i));
    l[x] += 10;
    if (l[x] > 100) break;
  }
  l[x] = lold;
  return ans;
}
int main() {
  cin >> n >> k >> A;
  for (int i = 0; i < (int)n; ++i) cin >> b[i] >> l[i];
  printf("%.20lf\n", (double)go(0, k));
  return 0;
}
