Submission
Status:
[PPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: Ninstroyer
Problemset: อัศวินขี่ม้าขาว
Language: cpp
Time: 0.075 second
Submitted On: 2026-01-03 16:19:08
#include<bits/stdc++.h>
using namespace std;
const int nx = 1005, inf = 1e9;
int n,m,arr[nx][nx],dp[nx][nx];
int main()
{
ios::sync_with_stdio(false); cin.tie(0);
cin>>n>>m;
for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) cin>>arr[i][j];
for(int i = 0; i <= n+1; i++) for(int j = 0; j <= m+1; j++) dp[i][j] = inf;
dp[n+1][m] = dp[n][m+1] = 1;
for(int i = n; i > 0; i--)
{
for(int j = m; j > 0; j--)
{
int need = min(dp[i+1][j], dp[i][j+1]) - arr[i][j];
if(need <= 0) need = 1;
dp[i][j] = need;
}
}
cout<<dp[1][1];
}