申告制エレベータ
例によってGithub
https://github.com/shogo82148/GoForIt/tree/master/q05
一応送ってみたけど、ギリギリアウトだった気がする。
解いたのはi) ii)のみ。アルゴリズムは問題の通りに実装するだけなので問題無いでしょう。
iii)も一応最適解を求めるプログラム書いたけど、乗客数7人程度が限界。
どの階でドアを開けるかで10通り×何人乗客を乗せて扉を閉じるか6通り=60通り。一回開け閉めをするだけで60通りもの組み合わせがあるので、力任せの検索では無理ですね・・・。
一応最小解が得られないとわかった時点で枝切りはしているのですが。
「できるだけ少なく」というのいうのは、「(最小じゃなくてもいいから)できるだけ少なく」っていう意味だったんですかね。