#include #include #include using namespace std; using namespace __gnu_pbds; using ll=long long; int L[100][100]; int mxvi[100][100]; const int dirs[]={0,1,0,-1}; void solve(){ int N,V;cin>>N>>V; int Sx,Sy;cin>>Sy>>Sx;--Sx,--Sy; int Gx,Gy;cin>>Gy>>Gx;--Gx,--Gy; for(int i=0;i>L[i][j]; int shortest_dist=abs(Sx-Gx)+abs(Gy-Sy); if(V>=shortest_dist*9){ cout<> que; que.emplace(0,Sx,Sy,V); while(!que.empty()){ auto [d,x,y,v]=que.front(); que.pop(); for(int k=0;k<4;++k){ const int nx=x+dirs[k]; const int ny=y+dirs[k^1]; if(nx<0||ny<0||nx>=N||ny>=N)continue; const int nv=v-L[nx][ny]; if(mxvi[nx][ny]>=nv)continue; const int nd=d+1; if(nx==Gx&&ny==Gy){ cout<>T; while(T--)solve(); return 0; }