7 my (%sleep_g, %sleep_g_m);
11 } elsif (/:(\d+)\] falls/) {
13 } elsif (/:(\d+)\] wakes/) {
14 $sleep_g{$g} += $1 - $sleep_m;
15 for my $min ($sleep_m .. $1 - 1) {
16 $sleep_g_m{$g}{$min}++;
23 for my $g (keys %sleep_g) {
24 if (!$max_g_sleep || $max_g_sleep < $sleep_g{$g}) {
26 $max_g_sleep = $sleep_g{$g};
31 for my $min (keys %{ $sleep_g_m{$max_g} }) {
32 my $n = $sleep_g_m{$max_g}{$min};
33 if (!defined $max_min_sleep || $max_min_sleep < $n) {
39 say $max_g * $max_min;