using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.SymbolStore;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Net.WebSockets;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Schema;


namespace ConsoleApplication2
{

    class Program
    {
        static void best(ref List<Tuple<double, double>> t, ref List<double> a)
        {
            double zb = 0;
            for(int i=0;i<t.Count;i++)
            {
                double d = t[i].Item1;
                for(int j=0;j<=i;j++)
                {
                    zb += t[j].Item2;
                }
                zb = zb * (t[i].Item1) / 100;
                a.Add(zb);
                zb = 0;
            }
        }
        static void Main(string[] args)
        {
            List<double> a = new List<double>();
            List<double> b = new List<double>();
            List<Tuple<double, double>> t = new List<Tuple<double, double>>();
            int n = int.Parse(Console.ReadLine());
            for(int i=0;i<n;i++)
            {
                var s = Console.ReadLine().Split();
                t.Add(Tuple.Create(double.Parse(s[1]), double.Parse(s[0])));

            }
            t.Sort();
            t.Reverse();
            best(ref t,ref a);
            double d = double.Parse(Math.Round(a.Max(), 4).ToString("0.0000"));
            double dec = d - Math.Floor(d);
            if (dec == 0.5000)
               d += 0.5000;
            Console.WriteLine(d);

        }

    }
}