#include "wombats.h"
#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define ll long long
#define ld long double
const int N=5010,M=210;
int n,m;
int Levo[N][M],Desno[N][M],Dole[N][M];
void init(int R, int C, int H[5000][200], int V[5000][200]) {
    n=R,m=C;
    for(int i=0;i<R;i++){
        for(int j=0;j<C;j++){
            Desno[i][j]=H[i][j];
            Levo[i][j+1]=H[i][j];
            Dole[i][j]=V[i][j];
        }
    }
}
void changeH(int P, int Q, int W) {
    Desno[P][Q]=Levo[P][Q+1]=W;
}
void changeV(int P, int Q, int W) {
    Dole[P][Q]=W;
}
int escape(int V1, int V2) {
    priority_queue<array<int,3>>pq;
    int dist[n+10][m+10];
    for(int i=0;i<n;i++) for(int j=0;j<m;j++) dist[i][j]=1e9;
    dist[0][V1]=0;
    pq.push({dist[0][V1],0,V1});
    while(!pq.empty()){
        array<int,3>nesto=pq.top();pq.pop();
        int u=nesto[1],v=nesto[2];
        if(v-1>=0&&dist[u][v-1]>dist[u][v]+Levo[u][v]){
            dist[u][v-1]=dist[u][v]+Levo[u][v];
            pq.push({-dist[u][v-1],u,v-1});
        }
        if(v+1<m&&dist[u][v+1]>dist[u][v]+Desno[u][v]){
            dist[u][v+1]=dist[u][v]+Desno[u][v];
            pq.push({-dist[u][v+1],u,v+1});
        }
        if(u+1<n&&dist[u+1][v]>dist[u][v]+Dole[u][v]){
            dist[u+1][v]=dist[u][v]+Dole[u][v];
            pq.push({-dist[u+1][v],u+1,v});
        }
    }
    return dist[n-1][V2];
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |