528.1

遅延が定番になりつつ...。

250

整数配列が与えられるので、任意の整数を好きなように二つに分ける、という操作を高々K回行ってよいとき、10をいくつ作れるか答えよ、という問題。


取り敢えず、20を見たら優先的に処理したい。それ以外はどうやっても同じ。なので、できれば10と20を作りたい...、という風に10の倍数を小さい順に処理していく。それ以外はどうやっても変わらない。

500

見てない。

1000

整数配列が与えられるので、二つの異なる要素を選び、一方からA引いて、もう一方からB引くという操作は何回できるか答えよ、という問題。


ある要素からAを引く回数を決めると、Bを引く回数の最大値が分かる。全体でやる回数よりも余分にやってしまうと変なことが起きるそうなので、それをしないようにやるだけで良いらしい。