SRM360 Div1 250
問題
数字の2次元配列が与えられる.その配列から各行と列がかぶらないように数字を選ぶ.そのとき,すべての組み合わせに対し,その選んだ数字の和がすべて等しいときCORRECT,違う場合INCORRECTを返す.
考え方
列iと列j,行kと行lを考える.(i,k)と(j,l)の数字を選んだ場合,残りは合計S'になるはず.(j,k)と(i,l)を選んでも残りの合計はS'になるはずなので,(i,k)+(j,l)と(j,k)+(i,l)が違う場合,合計が違ってしまうのでINCORRECT.
もし,すべての組み合わせに対して成り立つならば,(上の2つの場合を除いた残りの部分でも同様に成り立つので),CORRECT.