ABC112参加記録
久々にABCで全完できた回でした。 今回は練習もかねて初めてRubyで出ました。
A - Programming Education
1行だけ受け取って分岐して出力するだけの問題。
B - Time Limit Exceeded
時間T以内に帰れる方法でコストが最小なものを出力する問題。
入力[c, t]のペアでリストをもってT以下でフィルターをかけます。
残ったリストの中にあるcの最小値を出力して、
フィルターをかけた時にリストの長さが0であればその時はTLEを出力して完成。
C - Pyramid
ピラミッドの高さと中心座標を求める問題。
中心座標は101*101個なので全探索できます。
各候補座標に対して仮の高さを一度計算してその高さとしたときに与えられているすべての座標に矛盾がないか調べます。
矛盾がないか調べるときに候補座標から十分に距離が遠いもの(本来は高さがマイナスになるもの)を都度除外してから矛盾のチェックをしないとWAになってしまうので、その点で苦労しました。
D - Partition
個の整数の和がになるときにそれらの整数の最大公約数の最大値を求める問題。
がの倍数であるときもの倍数であるので、の候補はの約数となります。
がの約数であるとき、であれば問題の制約を満たせるので、約数を全探索すれば答えを見つけられます。約数の片方は必ず以下であるので1からまでループすれば十分間に合います。
答えの候補ですが、がの約数であるときも答えの候補になりうることがあるので、それを忘れるとWAになります。