#!/usr/bin/perl $NUM_BINS = 20; $max_bin = 0; open(LOG, $ARGV[0]) || die "Can't open $ARGV[0], $!\n"; while() { if ($_ =~ /^Problem \"([^\"]+)\" solved in (\d+\.\d+)/) { $name = $1; $time = $2; } elsif ($_ =~ /^>>>>> Problem \"([^\"]+)\" was not solved\. <<<< $max_bin) { $max_bin = $bin[$bin_num]; } $name = ""; $time = 0; } } close(LOG); for ($x = 1; $x < $NUM_BINS + 1; $x++) { $num_star = $bin[$x] / $max_bin * 60; $num_star = int($num_star); printf "%02u..%02u sec: %s ($bin[$x])\n", $x-1, $x, "#" x $num_star; print "\n ids: $ids[$x]\n\n"; } $num_star = $bin[0] / $max_bin * 60; $num_star = int($num_star); printf "not solved: %s ($bin[0])\n", "#" x $num_star; print "\n ids: $ids[0]\n\n";