表の中から異なる2つのマスを選んだ時、カバーしているマスの数字の合計をスコアとする。与えられた表から得られるスコアの最大値を答えよ。解法まず各マスを選んだ場合の素のスコアを座標とともに記録し、スコアの大きい順に並べる。この配列をscoresとする。mn))について被っているマスの数字を減じて、2つのマスを選んだ時のスコアを計算し、スコアの最大値を取っていく。この方法で最大値が求まるかは以下のような理由による。今、あるマスAを選んだとする。次にあるマスBを、カバーするマスがAのカバーするマスと被るように選ぶとする(BがAと同じマスでよいとする)。このときBの選び方は最大でもk2通りしかない。したがってAに対してk2+1個のマスを調べれば、Aとカバーするマスが被らないようなマスを1つ以上見つけることができる。すべてのマスの組でカバーの被りによってスコアがとても小さくなったとしても、カバーの被りの影響を受けないマスの組が1つは含まれることになる。scoresは大きい順に並んでいるのでこの範囲についてスコアを計算すればスコアの最大値を求めることができる。mnのときはO(k5)。