220.1

300

文字列の中から、数字の部分を切り出して、大きいもの半分を答えよ、という問題。


要は数字以外の文字の連続するもので切るだけ。split使えば一瞬。ソートして返すルーチンが必要だったりもするけれど。

500

Hearts(ゲーム)のルールに従ってスコアを答えよという問題。ルール違反しているプレイヤーについてはルール違反している旨を答える。


ひたすら面倒な実装をするだけ。ちゃんと英語読めますか?という問題。

900

ある特定の順番になるように、スワップ操作を行うとき、スワップのコストが、入れ替える二つの要素の値の和になる時、最小のコストを答えよ、という問題。


スワップしなくてはならない要素のループの中で、最小化することを考える。このとき、各ループの中で最小のものだけたくさん動かして、他のものは一回しか動かさないというのが最小。で、各ループの中で最小のものがたくさん動くとき、他のループの最小要素と入れ替えることを考える。このときループ長-1回だけ差分を得するが、2回の入れ替えコストが発生する。入れ替えコストを考えても得する場合だけ入れ替えるようにして、計算すればおしまい。