#include <iostream>
#include <iomanip>
using namespace std;

void merge1(double arr[],double arr1[], int l, int m, int r)
{
    int n1 = m - l + 1;
    int n2 = r - m;

    // Create temp arrays
    double L[n1], R[n2];
    double L1[n1], R1[n2];

    // Copy data to temp arrays L[] and R[]
    for (int i = 0; i < n1; i++){
        L[i] = arr[l + i];
        L1[i] = arr1[l + i];
    }

    for (int j = 0; j < n2; j++){
        R[j] = arr[m + 1 + j];
        R1[j] = arr1[m + 1 + j];

    }


    // Merge the temp arrays back into arr[l..r]

    // Initial index of first subarray
    int i = 0;

    // Initial index of second subarray
    int j = 0;

    // Initial index of merged subarray
    int k = l;

    while (i < n1 && j < n2) {
        if (L1[i] <= R1[j]) {
            arr[k] = L[i];
            arr1[k] = L1[i];
            i++;
        }
        else {
            arr[k] = R[j];
            arr1[k] = R1[j];
            j++;
        }
        k++;
    }

    // Copy the remaining elements of
    // L[], if there are any
    while (i < n1) {
        arr[k] = L[i];
        arr1[k] = L1[i];
        i++;
        k++;
    }

    // Copy the remaining elements of
    // R[], if there are any
    while (j < n2) {
        arr[k] = R[j];
        arr1[k] = R1[j];
        j++;
        k++;
    }
}

// l is for left index and r is
// right index of the sub-array
// of arr to be sorted */
void mergeSort(double arr[],double arr1[],int l,int r){
    if(l>=r){
        return;//returns recursively
    }
    int m = (l+r-1)/2;
    mergeSort(arr,arr1,l,m);
    mergeSort(arr,arr1,m+1,r);
    merge1(arr,arr1,l,m,r);
}
const int max_N=100005;
double niz[max_N];
double nizoje[max_N];
int main()
{
    int N;
    cin>>N;
    double a;
    double b;
    double k=3.5;
    double kl=3.2;
    double l=kl*k;

    for(int i=0;i<N;i++){
        scanf("%lf", &a);
        scanf("%lf", &b);

        niz[i]=a;
        nizoje[i]=b;

    }

    double brojcina=0;
    for(int i=0;i<N;i++){
        brojcina+=niz[i];

    }



    mergeSort(niz,nizoje,0,N-1);

    double maxi=(nizoje[0]*brojcina)/100;


    for(int i=1;i<N;i++){
        brojcina-=niz[i-1];
        double al=(nizoje[i]*brojcina)/100;

        if(al>maxi)
            maxi=al;

    }

   cout << fixed << setprecision(4) << maxi;

    
    return 0;
}