#include using namespace std; int vis[27][27]; int x1[4] = {1,1,-1,-1}; int yl[4] = {1,-1,1,-1}; bool isvalid(int x,int y,int n){ if(x >= 0 && y >= 0 && x > > q; q.push(make_pair(0,make_pair(0,0))); vis[0][0] = 1; while(!q.empty()){ int lev = q.front().first; int x = q.front().second.first; int y = q.front().second.second; q.pop(); for(int i=0;i<4;i++){ int x2 = x + x1[i]*a; int y2 = y + yl[i]*b; if(x2 == n-1 && y2 == n-1){ //cout << n << endl; return lev+1;} if(isvalid(x2,y2,n)){ if(!vis[x2][y2]){ vis[x2][y2] = 1; // cout << x2 << " " << y2 << endl; q.push(make_pair(lev+1,make_pair(x2,y2))); } } x2 = x + x1[i]*b; y2 = y + yl[i]*a; if(x2 == n-1 && y2 == n-1){ //cout << n << endl; return lev+1;} if(isvalid(x2,y2,n)){ if(!vis[x2][y2]){ vis[x2][y2] = 1; // cout << x2 << " " << y2 << endl; q.push(make_pair(lev+1,make_pair(x2,y2))); } } // cout << "-1" << endl; } } return -1; } int main(){ int n; cin >> n; // your code goes here for(int i=1;i