#include #include #include using namespace std; using namespace __gnu_pbds; using ll=long long; void solve(){ int N,V,Ox,Oy; cin>>N>>V>>Oy>>Ox; --Ox,--Oy; vector L(N*N); for(int i=0;i>L[i]; const int oasis=Ox*N+Oy; const int START=0; const int GOAL=N*N-1; vector> g(N*N); for(int i=0;i dist(N*N,INF); dist[src]=0; priority_queue,greater> pq; pq.emplace(src); const int mask=(1<<20)-1; while(!pq.empty()){ auto s=pq.top(); pq.pop(); auto [dv,v]=pair(s>>20,s&mask); if(dist[v]>T; while(T--)solve(); return 0; }