[ABC224] B - Mongeness (Monge解法)

[Q] https://atcoder.jp/contests/abc224/tasks/abc224_b

O(N^4) 探索すればいいんだけど、O(N^2)で十分という知見。
1. 2*2の正方形の探索をするだけでよかった。

Q. 
1 2 3
4 5 6
7 8 9

について。
・次の4通りだけ調べればいい。
(1,2,1,2)
(1,2,2,3)
(2,3,1,2)
(2,3,2,3)
1 2    2 3
4 5    5 6

4 5    5 6
7 8    8 9

・そうしておけば、たとえば
(1,3,1,2)
1 2
4 5
7 8

は、次の2要素の和になっている。
(1,2,1,2) + (2,3,1,2)
1 2
4 5

4 5
7 8

  1 + 5 + 4 + 8 - 2 - 4 - 5 - 7 // 4 と 5 が打ち消しあう     
= 1 + 8 - 2 - 7

実装

int main(){
 cincout();
 
 ll H, W;
 cin >> H >> W;
 
 ll A[55][55];
 rep(i, H) rep(j, W) cin >> A[i][j];
 
 bool ok = true;
 rep(i, H-1) rep(j, W-1){
   if (A[i][j] + A[i+1][j+1] > A[i][j+1] + A[i+1][j]){
     cout << "No" << endl;
     return 0;
   }
 }
 cout << "Yes" << endl;
}

https://atcoder.jp/contests/abc224/submissions/26788218

いいなと思ったら応援しよう!