#include <bits/stdc++.h>
using namespace std;
int level[10];
int loyal[10];
int n, A;
double calculate(int cur, int pass, int B, double rate) {
  double sum;
  if (cur == n) {
    if (pass > n / 2) {
      return rate;
    } else
      return rate * (double(A) / (double)(A + B));
  }
  sum = 0;
  sum = sum + calculate(cur + 1, pass, B + level[cur],
                        (rate * (double(100 - loyal[cur])) / 100.0));
  sum = sum +
        calculate(cur + 1, pass + 1, B, (rate * double(loyal[cur])) / 100.0);
  return sum;
}
double dfs(int cur, int k) {
  if (k == 0) {
    return calculate(0, 0, 0, 1.0);
  }
  if (cur == n) return calculate(0, 0, 0, 1.0);
  double a = 0.0;
  double temp;
  int ori = loyal[cur];
  while (loyal[cur] <= 100 && k >= 0) {
    temp = dfs(cur + 1, k);
    if (temp > a) a = temp;
    loyal[cur] = loyal[cur] + 10;
    k--;
  }
  loyal[cur] = ori;
  return a;
}
int main() {
  int k, i;
  scanf("%d%d%d", &n, &k, &A);
  for (i = 0; i < n; i++) {
    scanf("%d%d", &level[i], &loyal[i]);
  }
  printf("%.10lf\n", dfs(0, k));
  return 0;
}
