#include #include #include #include using namespace std; typedef struct{ int x; int y; }dir; const dir D[]={ {0,-1},{0,1},{-1,0},{1,0} }; int main(){ int H,W,A,Sx,Sy,B,Gx,Gy; cin>>H>>W>>A>>Sy>>Sx>>B>>Gy>>Gx; vectorv(H); for(int i=0;i>v[i]; queue>q; q.emplace(Sx,Sy,A); map,int>depth={ {make_tuple(Sx,Sy,A),0} }; for(;!q.empty();){ auto cur=q.front();q.pop(); int cx=get<0>(cur),cy=get<1>(cur),cw=get<2>(cur); for(auto &d:D){ if(0<=cx+d.x&&cx+d.x