#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1005;
long double dp[MAXN], tmp[MAXN];
int len(long long n) {
  int t = 0;
  while (n != 0) {
    t++;
    n /= 10;
  }
  return t;
}
long long way(long long a, long long b) {
  if (a != 1) return way(1, b) - way(1, a - 1);
  if (b < 10) return 1;
  long long k = 1, res = 1;
  while (len(k * 10) < len(b)) {
    k *= 10;
    res += k;
  }
  b = min(b, k * 10 * 2 - 1);
  return res + b - k * 10 + 1;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  int maxx = 0;
  for (int i = 0; i < n; i++) {
    long long l, r;
    cin >> l >> r;
    long long w = way(l, r), ww = r - l + 1;
    for (int j = 0; j < MAXN; j++) tmp[j] = dp[j];
    for (int j = 0; j <= maxx; j++) {
      if (i == 0)
        dp[j] = (1.0 * (ww - w) / ww);
      else
        dp[j] = dp[j] * (1.0 * (ww - w) / ww);
    }
    if (!w) continue;
    for (int j = 0; j <= maxx; j++) {
      if (i == 0)
        dp[j + 1] = (1.0 * w / ww);
      else
        dp[j + 1] += tmp[j] * (1.0 * w / ww);
    }
    maxx++;
  }
  int k;
  cin >> k;
  long long f = ceil(1.0 * n * (1.0 * k / 100));
  long double res = 0;
  for (int i = f; i <= maxx; i++) res += dp[i];
  cout << fixed << setprecision(9) << res << "\n";
}
