#!/bin/csh

awk -f - "$1" << EOF

/^#%%% / { print }
/Vars:/ { vars = \$9; }
/^#/ { }
/^;/ { }
/CLAUSES:/ { clauses = \$1; number = 0; sat = 0; unsat = 0; trivsat = 0; trivunsat = 0; }
/^S/ { sat = sat + 1; 
       if ( \$4 == 0 ) { trivsat = trivsat + 1; }
       }
/^U/ { unsat = unsat + 1; 
       if ( \$4 == 0 ) { trivunsat = trivunsat + 1; }
     }
/^[SUB]/ { number = number + 1;
           indx = 1;
	   while ( indx < number && time[indx] <= \$2 ) indx = indx + 1;
	   move = number;
	   while ( indx < move ) { time[move] = time[move-1]; move = move - 1 }
	   time[indx] = \$2;

           indx = 1;
	   while ( indx < number && sattime[indx] <= \$5 ) indx = indx + 1;
	   move = number;
	   while ( indx < move ) { sattime[move] = sattime[move-1]; move = move - 1 }
	   sattime[indx] = \$5; }

/^ / { printf "%7.2f  %5.2f %5.2f   ", clauses/vars, sat/number, unsat/number;
       printf "%7.2f %7.2f %7.2f %7.2f %7.2f %7.2f   ",
	 time[int(number/2)], time[int((6*number)/10)], time[int((7*number)/10)],
	 time[int((8*number)/10)], time[int((9*number)/10)], time[number];
       printf "%7.2f %7.2f %7.2f %7.2f %7.2f %7.2f ",
	 sattime[int(number/2)], sattime[int((6*number)/10)], sattime[int((7*number)/10)],
	 sattime[int((8*number)/10)], sattime[int((9*number)/10)], sattime[number];
       printf "%5.2f %5.2f\n", trivsat/number, trivunsat/number;
      }

EOF
