第一回 アルゴリズム実技検定 M - おまかせ
問題
体の所持モンスターから4匹以上、体のお助けモンスターから0匹以上選んでモンスターを合成する。 合成されたモンスターの強さは、(使用したモンスターの魔力の和)/(使用したモンスターの質量の和)で定義される。 合成できるモンスターの最大の強さを求める。
考察
選んだモンスターの質量を、魔力をとすると、モンスターの強さはになる。 解は、不等式を満たす最大のと一致するので、二分探索で求められそうである。
不等式を次のように変形する。
以上より、強さ以上のモンスターを合成可能か判定するためには、が大きいモンスターから順に選べばよいことがわかる。
お助けモンスターを複数選ばないように、適当にフラグを立てれば求められる。