function heapsort_desc (n, ra,rb) { l = int(0.5+n/2) + 1 ir = n; for (;;) { if (l > 1) { rra = ra[--l]; rrb = rb[l]; } else { rra = ra[ir];rrb=rb[ir]; ra[ir] = ra[1];rb[ir]=rb[1]; if (--ir == 1) { ra[1] = rra;rb[1]=rrb; return; } } i = l; j = l * 2; while (j <= ir) { if (j < ir && ra[j] > ra[j+1]) { ++j; } if (rra > ra[j]) { ra[i] = ra[j];rb[i] = rb[j]; j += (i = j); } else { j = ir + 1; } } ra[i] = rra;rb[i] = rrb; } } { if (substr($0,1,3)=="win"){id=$1;sco=0;}#print "D1:"n,$1} if ($4=="last.net") {sl[n]=sl[n]" 1";}#print "D2"n;} if ((sco==0)&&($1=="ep:")) {sco=1;}#print "D3:"n,s} if ((sco==1)&&($1=="ep:")) {s=$6;sc[++n]=s;sl[n]=NR" "id;sco=2;}#print "D3:"n,s} li[NR]=$0; }END{ heapsort_desc(n,sc,sl); for (i=1;i<=n;i++){ f=split(sl[i],a," "); p=0+a[1];done=f-2;id2=li[p-4] printf("%03.2f %s %s %s %d\n",sc[i],substr(id2,1,length(id2)-6),substr(li[p],1,length(li[p])-2),li[p-3],done); } }