#include <bits/stdc++.h>
using namespace std;
int N, K, A;
int M[10], L[10];
double ret;
void go(int n, int k) {
  if (n == N - 1) {
    int c = min(k, (100 - L[n]) / 10) * 10 + L[n];
    swap(L[n], c);
    double tot = 0.;
    for (int i = 0; i < (1 << N); i++) {
      double v = 1.;
      int B = 0;
      for (int j = 0; j < N; j++) {
        if (i & (1 << j))
          v *= L[j] / 100.;
        else
          v *= (100. - L[j]) / 100., B += M[j];
      }
      if (__builtin_popcount(i) > N / 2)
        tot += v;
      else
        tot += v * A / (A + B);
    }
    ret = max(ret, tot);
    swap(L[n], c);
    return;
  }
  for (int i = 0; i <= k; i++) {
    int c = L[n] + i * 10;
    if (c > 100) break;
    swap(L[n], c);
    go(n + 1, k - i);
    swap(L[n], c);
  }
}
int main() {
  scanf("%d %d %d", &N, &K, &A);
  for (int i = 0; i < N; i++) scanf("%d %d", M + i, L + i);
  ret = 0.;
  go(0, K);
  printf("%.10lf\n", ret);
  return 0;
}
