#include <iostream>
#include <cmath>

using namespace std;

void unos_niza(int a[],double b[],int n)
{
    for (int i=0;i<n;i++)
        cin >> a[i] >> b[i];
}

void postavljanje_niza1(double a[],int n)
{
    for (int i=0;i<n;i++)
        a[i]=0.0;
}

void postavljanje_niza2(int a[],int n)
{
    for (int i=0;i<n;i++)
        a[i]=0;
}

void razmena1(double a,double b)
{
    double tmp;
    tmp=a;
    a=b;
    b=tmp;
}

void razmena2(int a,int b)
{
    int tmp;
    tmp=a;
    a=b;
    b=tmp;
}

void sortiranje_niza(double a[],int b[],int n)
{
    int i,j;
    for (i=1;i<n;i++)
        for (j=i;j>0 && a[j-1]>a[j];j--)
        {
            razmena1(a[j],a[j-1]);
            razmena2(b[j],b[j-1]);
        }
}

void zaokruzivanje(double p[],int n)
{
    for (int i=0;i<n;i++)
        p[i]=ceil(p[i]*100.00)/100.0;
}

double maximum_niza(double a[],int n)
{
    int i;
    double max=a[0];
    for (i=1;i<n;i++)
        if (a[i]>max)
            max=a[i];
    return max;
}

int main()
{
    int n,i,j;
    cin >> n;
    int a[n],s[n];
    postavljanje_niza2(s,n);
    double p[n];
    unos_niza(a,p,n);
    double novac[n],max;
    postavljanje_niza1(novac,n);
    zaokruzivanje(p,n);
    sortiranje_niza(p,a,n);
    for (i=0;i<n;i++)
        {
            if (p[i]>100.0)
                return 0;
            for (j=i;j<n;j++)
                s[i]=s[i]+a[j];
            novac[i]=s[i]*p[i]/100;
        }
    max=maximum_niza(novac,n);
    cout << max << endl;
    return 0;
}