#include<stdio.h>
struct radnik
{
	double zarada;
	double procenat;
};
struct radnik pom[200001];
void merge_sort(int poc , int kraj, struct radnik a[])
{
	int p=poc+((kraj-poc)/2);
	if((kraj-poc)>1)
	{	
		merge_sort(poc,p,a);
		merge_sort(p,kraj,a);
	}
 	int i=poc,j=p,k=0;
	for(k=0;k<(kraj-poc);k++)
	{
		if(a[i].procenat<=a[j].procenat && i<p && j<kraj)
		{
			pom[k]=a[i];
			i++;
			continue;
		}
		
		if(a[j].procenat<a[i].procenat && i<p && j<kraj)
		{
			pom[k]=a[j];
			j++;
			continue;
		}
		
		if(i==p && j<kraj)
		{
			pom[k]=a[j];
			j++;
			continue;
		}
		
		if(j==kraj && i<p)
		{
			pom[k]=a[i];
			i++;
			continue;
		}
	}
	for(k=0;k<(kraj-poc);k++)
	a[poc+k]=pom[k];
}
main()
{
	int N,i;
	double ukupno=0, max=0;
	struct radnik a[200001];
	scanf("%d",&N);
	for(i=0;i<N;i++)
	scanf("%lf%lf",&a[i].zarada,&a[i].procenat);
	
	for(i=0;i<N;i++)
	ukupno+=a[i].zarada;
	
	merge_sort(0,N,a);
	
	for(i=0;i<N;i++)
	{
		if((ukupno*a[i].procenat/100)>max)
		max=ukupno*a[i].procenat/100;
		
		ukupno=ukupno-a[i].zarada;
	}
	
	printf("%lf",max);
}