JOI2008予選 問題3@Perl(13)
なんかPerlで書いてみたくなった。
凄く読みづらいコードだが、変数名は比較的簡単なので、Perlにまつわるバッドノウハウを知っていればすぐ読める。
しかし、PerlのRange Operator(".."のこと)は、全開区間なんだね。Pythonみたいに半開区間のほうが便利なのに。
#!/usr/bin/perl $n=<>; for (1..$n*2) { $cards[$_]=2; } for (1..$n) { $cards[<>]=1; } $cards[$n*2+1]=0; $player=1; @points=(0,$n,$n); $min=1; while($points[1] and $points[2]) { for($min..$n*2+1) { if($cards[$_]==$player) { $min=$_; $cards[$_]=-1; $points[$player]--; last; } elsif($cards[$_]==0) { $min=1; last; } } $player=3-$player; } print "$points[2]\n$points[1]\n";