#include <bits/stdc++.h>
using namespace std;
struct tt {
  int v, p;
} a[100], b[100];
int n, k, A;
double ans, pp;
double solve() {
  double res = 0, temp;
  int t, i, B, cnt;
  for (t = 0; t < (1 << n); ++t) {
    cnt = B = 0;
    temp = 1.0;
    for (i = 0; i < n; ++i) {
      if ((1 << i) & t) {
        temp *= (double)b[i].p / 100.0;
        ++cnt;
      } else {
        temp *= (1 - (double)b[i].p / 100.0);
        B += b[i].v;
      }
    }
    if (cnt > n / 2)
      res += temp;
    else
      res += temp * ((double)A / (double)(A + B));
  }
  return res;
}
void dfs(int no, int sum) {
  int i;
  if (no == n) {
    b[no].p = a[no].p + sum;
    if (b[no].p > 100) b[no].p = 100;
    pp = solve();
    if (ans < pp) ans = pp;
    return;
  }
  for (i = a[no].p; i <= 100 && sum >= 0; sum -= 10, i += 10) {
    b[no].p = i;
    dfs(no + 1, sum);
  }
}
int main() {
  int i, j;
  while (scanf("%d %d %d", &n, &k, &A) != EOF) {
    for (i = 0; i < n; ++i) {
      scanf("%d %d", &a[i].v, &a[i].p);
      b[i].v = a[i].v;
    }
    ans = 0;
    dfs(0, k * 10);
    cout << fixed << setprecision(10) << ans << endl;
  }
  return 0;
}
