// Template by [thunder_blade] // IIIT ALLAHABAD // includes :) #include using namespace std; #define TEST int test_case; cin>>test_case; while(test_case--) #define all(v) (v).begin(),(v).end() #define fi first #define se second #define pb push_back #define mp make_pair #define ll long long int #define SPEED ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); #define pi(x) printf("%d\n",x) #define pl(x) printf("%lld\n",x) #define pf(x) printf("%f\n",x) #define ps(x) printf("%s\n",x) #define si(x) scanf("%d",&x) #define sl(x) scanf("%lld",&x) #define sf(x) scanf("%f",&x) #define ss(x) scanf("%s",x) #define pis(x) printf("%d ",x) #define pls(x) printf("%lld ",x) #define pfs(x) printf("%f ",x) #define pss(x) printf("%s ",x) #define FOR(i,a,b) for(i=a;i, pair >ma; map< pair,int>ans; int n; int check(int x, int dx, int y, int dy) { x+=dx; y+=dy; if(x>=0 && x=0 && y, string>dd; int main() { si(n); for(int i=0;iq; struct node st; st.move = 0; st.x = sx; st.y = sy; st.dir = ""; q.push(st); ma[{sx,sy}] = {0,0}; dd[{sx,sy}] = "finish"; ans[{sx,sy}] = 0; while(!q.empty()) { struct node tmp = q.front(); q.pop(); int x = tmp.x; int y = tmp.y; for(int i=0;i<6;i++){ int val = ans[{x,y}]; struct node tt; if(check(x, xcor[i],y,ycor[i]) && ans[{x+xcor[i], y+ycor[i]}]>val+1){ ans[{x+xcor[i], y+ycor[i]}] = val+1; ma[{x+xcor[i], y+ycor[i]}] = {x,y}; tt.x = x+xcor[i]; tt.y = y+ycor[i]; tt.move = val+1; ans[{x+xcor[i], y+ycor[i]}] = val+1; dd[{x+xcor[i], y+ycor[i]}] = get(i); //cout<v; cout<