カメヲラボ

主にプログラミングとお勉強全般について書いてます

Sticks(0)

http://acm.pku.edu.cn/JudgeOnline/showproblem?problem_id=1011
長さがバラバラの棒の切れ端をつなぎ合わせて、同じ長さの棒を作る問題。つなぎ合わせた棒の長さは考えられる答えの中で最小でなければならない。なるべく短くするということは、同じ長さの棒をできるだけたくさん作れば良いということだ。

たとえば、

このように長さの違う4本の棒なら、



という風に同じ長さの棒を2本作ることが出来る。


入力は
1行目:棒の切れ端の数(最大64)
2行目:切れ端の長さ(スペース区切り)
3行目以降は上記2行の繰り返しになっていて、最後の行が0(切れ端の数が0)となっている。終了判定は0をスキャンした時ということになる。

出力は
出来る棒の長さ


例(PKUからそのまま転載)


Sample Input

9
5 2 1 5 2 1 5 2 1
4
1 2 3 4
0

Sample Output

6
5

また、問題文には「切れ端の長さは精々50まで」と書いてあるので、もしかしたらテストケースに含まれているデータに長さ50を超えるものが含まれているのかもしれない。


テストケースのデータが結構厳しいようで、一発Acceptはなかなか難しい。Acceptされた後も省メモリやコード短縮など、できることがたくさんある。ウデに自信のある人は(ない人も)Let'sちゃらんげ!