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 ($1=="ep:") {s=$6;sc[++n]=s;sl[n]=NR;} li[NR]=$0; }END{ heapsort_desc(n,sc,sl); for (i=1;i<=n;i++){ p=sl[i];id=li[p-4]; an=substr(id,1,length(id)-6); nl=split(an,a,"-"); printf("%03.2f %d %s %s %s\n",sc[i],nl,an,li[p],li[p-3]); } }