6 my (%speed, %time, %resttime);
12 my ($name, $sp, $t, $r) = /(\w+) can fly (\d+) .* for (\d+) .*rest for (\d+) /;
15 $resttime{$name} = $r;
26 for my $n (keys %speed) {
27 $dist{$n} += $speed{$n} if $state{$n} > 0;
28 $state{$n} = $time{$n} if --$state{$n} <= -$resttime{$n};
29 $max = $dist{$n} if !$max || $max < $dist{$n};
32 for my $n (keys %speed) {
33 $score{$n}++ if $dist{$n} == $max;
38 for my $n (keys %speed) {
39 $maxscore = $score{$n} if !$maxscore || $score{$n} > $maxscore;