chomp $user;
print "$user:";
open REP, ">testing/$user/REPORT" or die;
- print REP "Evaluation report for CEOI 2007 Day 1\n\n";
+ print REP "Evaluation report for CEOI 2007 Day 2\n\n";
my $total = 0;
foreach my $task (@ARGV) {
print REP "### Task $task ###\n\n";
if (open PTS, "testing/$user/$task/points") {
- my $tt = 0;
+ my %merged_pts = ();
+ my %split_comm = ();
while (<PTS>) {
chomp;
my ($test, $pts, $comm) = /(\S+)\s+(\S+)\s+(.*)/;
- $comm =~ s/\.$//;
- printf REP "Test %2s: %2d points (%s)\n", $test, $pts, $comm;
- $tt += $pts;
+ my $merged = $test;
+ $merged =~ s/[^0-9]//;
+ if (!defined($merged_pts{$merged}) || $merged_pts{$merged} > $pts) {
+ $merged_pts{$merged} = $pts;
+ }
+ $split_comm{$merged}{$test} = $comm;
}
close PTS;
+ my $tt = 0;
+ foreach my $merged (sort { $a <=> $b } keys %merged_pts) {
+ printf REP "Test %2s: %2d points", $merged, $merged_pts{$merged};
+ $tt += $merged_pts{$merged};
+ my @k = sort keys %{$split_comm{$merged}};
+ if (@k == 1) {
+ print REP " -- ", $split_comm{$merged}{$k[0]}, "\n";
+ } else {
+ print REP " -- ";
+ my $cc = 0;
+ foreach my $t (@k) {
+ $cc++ and print REP ", ";
+ print REP "$t: $split_comm{$merged}{$t}";
+ }
+ print REP "\n";
+ }
+ }
print REP "\nTOTAL: $tt points\n\n";
$total += $tt;
print " $tt";
print " -";
}
}
- print REP "### TOTAL FOR DAY 1 ###\n\n";
+ print REP "### TOTAL FOR DAY 2 ###\n\n";
print REP "$total points\n";
print REP "\n\n(generated on ", strftime("%Y-%m-%d %H:%M:%S", localtime), ")\n";
close REP;