#include using namespace std; typedef long long ll; #define rep(i,n) for(i=0;i pi; int main() { int i,j; int n,v,ox,oy; int f[201][201]={0}; cin >>n >>v >>ox >>oy; rep(i,n)rep(j,n) cin>>f[i+1][j+1]; bool valid=false; string ans="NO"; //たどりつくまでに消費する体力の最小値を計算 //オアシスを無視して、とりあえず行けるか int d[201][201]; fill(d[0],d[201],INF); d[1][1]=0; queue que; que.push(pi(1,1)); while(!que.empty()) { pi p=que.front(); que.pop(); rep(i,4) { int nx=p.fi+dx[i], ny=p.sc+dy[i]; if(0d[p.sc][p.fi]+f[ny][nx]) { d[ny][nx]=d[p.sc][p.fi]+f[ny][nx]; que.push(pi(nx,ny)); } } } } //直接行ける if(d[n][n]0) { int d2[201][201]; fill(d2[0],d2[201],INF); d2[oy][ox]=0; que.push(pi(ox,oy)); while(!que.empty()) { pi p=que.front(); que.pop(); rep(i,4) { int nx=p.fi+dx[i], ny=p.sc+dy[i]; if(0d2[p.sc][p.fi]+f[ny][nx]) { d2[ny][nx]=d2[p.sc][p.fi]+f[ny][nx]; que.push(pi(nx,ny)); } } } } //オアシス経由で行ける if(d2[n][n]