The Drunk Jailer(0)
http://acm.pku.edu.cn/JudgeOnline/showproblem?problem_id=1218
酔っ払い看守
鍵の掛かったN個の独房がある。看守はN杯のウィスキーを飲むのだが、一杯目を飲んだ時はN個すべての独房の鍵を開ける。2杯目飲んだ時は、2,4,6...番目の独房の、A:鍵が掛かっていたら開ける B:鍵が開いていたら(鍵を)掛ける。3杯目を飲んだ時は、3,6,9...番目の独房について、A・Bを行う。4杯目は4,8,12...番目の独房について・・・というような動作をN回繰り返し、N杯目が終わったところで酔いつぶれて終わり。最終的に鍵の開いた独房はいくつあるかという問題だ。
たとえば独房が6つあったとする。
鍵が開いている・・・○
鍵が掛かっている・・・×とすれば、
という風に、最終的には独房1と4の鍵が開いていることになる。
N杯:独房1 独房2 独房3 独房4 独房5 独房6
1 : ○ ○ ○ ○ ○ ○
2 : ○ × ○ × ○ ×
3 : ○ × × × ○ ○
4 : ○ × × ○ ○ ○
5 : ○ × × ○ × ○
6 : ○ × × ○ × ×
この問題は、最終的に63バイトという超短いコードで出来るのだがいきなりはさすがに難しい。とりあえず単純なコードを書くところからはじめてみよう。