Submission

Status:
[PPPPPPPPPPPPPPP]

Score: 100

User: Nightingale

Problemset: อัศวินขี่ม้าขาว

Language: cpp

Time: 0.096 second

Submitted On: 2025-03-31 22:51:37

#include <bits/stdc++.h>
#define int long long
using namespace std;
int32_t main() 
{
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int a,b;
  cin >> a >> b;
  vector<vector<int>> maze(a,vector<int>(b));
  vector<vector<int>> life(a,vector<int>(b));
  for(int i=0;i<a;i++){
    for(int j=0;j<b;j++){
      cin >> maze[i][j];
    }
  }
  int cow = 1;
  life[a-1][b-1] = max(cow,-maze[a-1][b-1]+1);
  for(int i=a-2;i>=0;i--){
    life[i][b-1] = max(cow,life[i+1][b-1]-maze[i][b-1]);
  }
  for(int i=b-2;i>=0;i--){
    life[a-1][i] = max(cow,life[a-1][i+1]-maze[a-1][i]);
  }
  for(int i=a-2;i>=0;i--){
    for(int j=b-2;j>=0;j--){
      life[i][j] = max(cow,min(life[i+1][j]-maze[i][j],life[i][j+1]-maze[i][j]));
    }
  }
  cout << life[0][0];
}