Submission
Status:
[PPPPPPPPxSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: Ecir
Problemset: อัศวินขี่ม้าขาว
Language: cpp
Time: 0.985 second
Submitted On: 2025-10-04 12:10:53
#include <bits/stdc++.h>
using namespace std;
using ll=long long int;
#define fd array<ll,4>
priority_queue<fd,vector<fd>> q;
int arr[1009][1009];
int main(){
ios::sync_with_stdio(0);cin.tie(0);
int sy,sx;cin >> sy >> sx;
for(int i=1;i<=sy;i++){
for(int j=1;j<=sx;j++) cin >> arr[i][j];
}
q.push({arr[1][1],arr[1][1],1,1});
while(!q.empty()){
auto m=q.top();q.pop();
ll mx=m[0],sum=m[1],u=m[2],v=m[3];
if(u==sy && v==sx){
int ans=min(mx,1ll);
if(ans==1) cout << 1;
else cout << abs(mx)+1;
return 0;
}
if(v+1<=sx) q.push({min(mx,sum+arr[u][v+1]),sum+arr[u][v+1],u,v+1});
if(u+1<=sy) q.push({min(mx,sum+arr[u+1][v]),sum+arr[u+1][v],u+1,v});
}
return 0;
}