#include <bits/stdc++.h>
using namespace std;
struct Judge {
  int level, loyalty;
  Judge() {}
  Judge(int L, int P) { level = L, loyalty = P; }
};
int n, k, a;
Judge judges[8];
double ans = 0.0;
double probability() {
  double res = 0;
  for (int m = 0; m < (1 << n); ++m) {
    double p = 1;
    int toKill = 0;
    for (int i = 0; i < n; ++i) {
      if (m & (1 << i)) {
        p *= judges[i].loyalty / 100.0;
      } else {
        p *= 1.0 - judges[i].loyalty / 100.0;
        toKill += judges[i].level;
      }
    }
    if (2 * __builtin_popcount(m) > n) {
      res += p;
    } else {
      res += p * a / (a + toKill);
    }
  }
  return res;
}
void backtrack(int i, int k) {
  if (k == 0) {
    ans = max(ans, probability());
    return;
  }
  if (judges[i].loyalty < 100) {
    judges[i].loyalty += 10;
    backtrack(i, k - 1);
    judges[i].loyalty -= 10;
  }
  if (i > 0) {
    backtrack(i - 1, k);
  }
}
int main() {
  scanf("%d%d%d", &n, &k, &a);
  for (int i = 0; i < n; ++i) {
    scanf("%d%d", &judges[i].level, &judges[i].loyalty);
  }
  backtrack(n, k);
  printf("%.9lf\n", ans);
  return 0;
}
