import java.io.*; import java.util.*; import java.text.*; class Contract{ int id,a,b,d; Contract(int id,int a,int b,int d){ this.id=id; this.a =a; this.b =b; this.d =d; } } class CompByD implements Comparator{ public int compare(Object o1,Object o2){ Contract c1=(Contract)o1,c2=(Contract)o2; return c1.d!=c2.d ? c1.d-c2.d : c1.id-c2.id; } } class CompByA implements Comparator{ public int compare(Object o1,Object o2){ Contract c1=(Contract)o1,c2=(Contract)o2; return c1.a!=c2.a ? c1.a-c2.a : c1.id-c2.id; } } public class Lazy_nomura{ public static void main(String[] args) throws Exception{ BufferedReader br=new BufferedReader(new FileReader("lazy.in")); StringTokenizer st; int i,j,k,l; while(true){ int n=Integer.parseInt(br.readLine()); if(n==0) break; Contract[] cs=new Contract[n]; for(i=0;ics[i].d){ int over=bSum-cs[i].d; Contract cMaxA=(Contract)pque.last(); if(cMaxA.b>over){ ans+=(double)over/cMaxA.a; cMaxA.b-=over; bSum=cs[i].d; } else{ ans+=(double)cMaxA.b/cMaxA.a; pque.remove(cMaxA); bSum-=cMaxA.b; } } } DecimalFormat df=new DecimalFormat("0.00"); System.out.println(df.format(ans)); } } }