6 my (%speed, %time, %resttime);
10 my ($name, $sp, $t, $r) = /(\w+) can fly (\d+) .* for (\d+) .*rest for (\d+) /;
13 $resttime{$name} = $r;
22 for my $n (keys %speed) {
23 my $loops = int($time/($time{$n}+$resttime{$n}));
24 my $dist = $loops * $time{$n} * $speed{$n};
25 my $rest = $time - $loops*($time{$n}+$resttime{$n});
26 $rest = $time{$n} if $rest > $time{$n};
27 $dist += $speed{$n} * $rest;
29 $max = $dist if !$max || $max < $dist;