Submission
Status:
[PPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: Iamheretodoproblems
Problemset: อัศวินขี่ม้าขาว
Language: cpp
Time: 0.167 second
Submitted On: 2026-03-21 22:07:28
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
vector<vector<int>> grid(n,vector<int>(m));
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>grid[i][j];
}
}
vector<vector<int>> dp(n,vector<int>(m));
dp[n-1][m-1]=max(1,1-grid[n-1][m-1]);
for(int i=n-1;i>=0;i--)
{
for(int j=m-1;j>=0;j--)
{
if(i==n-1&&j==m-1) continue;
int need=INT_MAX;
if(i!=n-1)
{
need=min(need,dp[i+1][j]);
}
if(j!=m-1)
{
need=min(need,dp[i][j+1]);
}
dp[i][j]=max(1,need-grid[i][j]);
}
}
cout<<dp[0][0];
}