#include <bits/stdc++.h>
using namespace std;
inline bool checkBit(long long n, int i) { return n & (1LL << i); }
inline long long setBit(long long n, int i) { return n | (1LL << i); }
inline long long resetBit(long long n, int i) { return n & (~(1LL << i)); }
inline bool EQ(double a, double b) { return fabs(a - b) < 1e-9; }
inline double dist(double ix, double iy, double jx, double jy) {
  return sqrt(((ix - jx) * (ix - jx)) + ((iy - jy) * (iy - jy)));
}
int marked[1000000 / 64 + 2];
bool isPrime(int x) {
  return (x > 1) &&
         ((x == 2) ||
          ((x & 1) && (!((marked[x >> 6] & (1 << ((x & 63) >> 1)))))));
}
void seive(int n) {
  int i, j;
  for (i = 3; i * i <= n; i += 2) {
    if (!(marked[i >> 6] & (1 << ((i & 63) >> 1)))) {
      for (j = i * i; j <= n; j += i << 1) {
        marked[j >> 6] |= (1 << ((j & 63) >> 1));
      }
    }
  }
}
long long bigMod(long long a, long long b) {
  long long r = 1;
  while (b) {
    if (b & 1) (r *= a) %= 1000000007;
    b >>= 1;
    (a *= a) %= 1000000007;
  }
  return r;
}
pair<double, double> a[100007];
double per(pair<double, double> x, pair<double, double> y) {
  return x.first + x.first * x.second * (1.0 - y.second) + y.first;
}
bool cmp(pair<double, double> x, pair<double, double> y) {
  return per(x, y) > per(y, x);
}
int main() {
  int n, i;
  scanf("%d", &n);
  for (i = 0; i < n; i++) {
    scanf("%lf %lf", &a[i].first, &a[i].second);
    a[i].second /= 100.0;
  }
  sort(a, a + n, cmp);
  double ans = 0.0, sum = 0.0;
  for (i = n - 1; i >= 0; i--) {
    ans += a[i].first;
    ans += a[i].first * a[i].second * sum;
    sum += 1 - a[i].second;
  }
  printf("%.9lf\n", ans);
  return 0;
}
