blob: 4294394d11f602fb912e612b875b9e89e460de5a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
#!/usr/bin/perl
$NUM_BINS = 20;
$max_bin = 0;
open(LOG, $ARGV[0]) || die "Can't open $ARGV[0], $!\n";
while(<LOG>)
{
if ($_ =~ /^Problem \"([^\"]+)\" solved in (\d+\.\d+)/)
{
$name = $1;
$time = $2;
}
elsif ($_ =~ /^>>>>> Problem \"([^\"]+)\" was not solved\. <<<<</)
{
$name = $1;
$time = -1;
}
if ($name ne "")
{
if ($name =~ /[^\.]+\.(\d+)/)
{
$name = $1;
}
if ($time != -1)
{
$sec_per = 20.0 / $NUM_BINS;
$bin_num = $time / $sec_per;
$bin_num++;
$bin_num = int($bin_num);
}
else
{
$bin_num = 0;
}
if (!defined($bin[$bin_num]))
{
$bin[$bin_num] = 0;
}
$bin[$bin_num]++;
$ids[$bin_num] .= " " . $name;
if ($bin[$bin_num] > $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";
|