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;
}