#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
const ll mod = 1e9 + 7;
const ll MOD = 998244353;
const ll MAX = 2e5 + 1;
inline ll add(ll a, ll b) { return ((a % mod) + (b % mod)) % mod; }
inline ll sub(ll a, ll b) { return ((a % mod) - (b % mod) + mod) % mod; }
inline ll mul(ll a, ll b) { return ((a % mod) * (b % mod)) % mod; }
ll pwr(ll x, ll n) {
  if (!n) return 1;
  if (n & 1)
    return mul(x, pwr(mul(x, x), (n - 1) / 2));
  else
    return pwr(mul(x, x), n / 2);
}
ll modinv(ll n) { return pwr(n, mod - 2); }
ll n, k;
ld A, ans;
pair<ld, ld> a[10];
void prob() {
  ld temp = 0;
  for (ll mask = 0; mask < 1LL << n; mask++) {
    ll yes = 0, no = 0;
    ld p = 1, kill = 0;
    for (ll i = 0; i < n; i++) {
      if (mask & (1LL << i)) {
        p *= a[i].second;
        yes++;
      } else {
        p *= (1 - a[i].second);
        no++;
        kill += a[i].first;
      }
    }
    if (yes > no) {
      temp += p;
    } else {
      temp += p * (A / (A + kill));
    }
  }
  ans = max(ans, temp);
}
void rec(ll i, ll rem) {
  if (i == n) {
    prob();
    return;
  }
  rec(i + 1, rem);
  for (ll j = 1; j < rem + 1; j++) {
    if (a[i].second + (ld)j * 0.1 < 1.01) {
      a[i].second += (ld)j * 0.1;
      rec(i + 1, rem - j);
      a[i].second -= (ld)j * 0.1;
    }
  }
}
void speed_solve() {
  cin >> n >> k >> A;
  for (ll i = 0; i < n; i++) {
    cin >> a[i].first >> a[i].second;
    a[i].second /= 100;
  }
  rec(0, k);
  cout << fixed << setprecision(10);
  cout << ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  ll test_cases = 1;
  for (ll i = 0; i < test_cases; i++) {
    speed_solve();
  }
  return 0;
}
