Submission
Status:
[PPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: C12
Problemset: อัศวินขี่ม้าขาว
Language: cpp
Time: 0.055 second
Submitted On: 2026-03-07 22:58:48
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll dp[1001][1001];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
int n,m;
cin >> n >> m;
for(int i = n-1;i >= 0;i--){
for(int j = m-1;j >= 0;j--){
cin >> dp[i][j];
dp[i][j] *= -1;
}
}
dp[0][0] = dp[0][0] + 1;
if(dp[0][0] < 1) dp[0][0] = 1;
for(int i = 1;i < n;i++){
dp[i][0] += dp[i-1][0];
if(dp[i][0] < 1) dp[i][0] = 1;
}
for(int i = 1;i < m;i++){
dp[0][i] += dp[0][i-1];
if(dp[0][i] < 1) dp[0][i] = 1;
}
for(int i = 1;i < n;i++){
for(int j = 1;j < m;j++){
dp[i][j] = min(dp[i-1][j],dp[i][j-1]) + dp[i][j];
if(dp[i][j] < 1) dp[i][j] = 1;
}
}
cout << dp[n-1][m-1];
return 0;
}