#include using namespace std; vectorv[200001]; int arr[1024][1024]; bool used[200001]; int n,p,x,y,B; ifstream fin("puzzle.in"); ofstream fout("puzzle.out"); void print() { int i,j; for(j=0;j "<=0;l--) { int nb=v[prev][l]; if(!used[nb]&&v[nb].size()==4) { arr[i][j]=nb; used[nb]=1;break; } } } else { for(l=v[prev].size()-1;l>=0;l--) { int nb=v[prev][l]; if(!used[nb]&&v[nb].size()==3) { arr[i][j]=nb; used[nb]=1;break; } } } } else {if(i==y-1)prev=arr[i-1][j]; else prev=arr[i][j-1]; if(j!=0&&j!=x-1) { for(l=v[prev].size()-1;l>=0;l--) { int nb=v[prev][l]; if(!used[nb]&&v[nb].size()==3) { arr[i][j]=nb; used[nb]=1;break; } } } else { //cout< "<=0;l--) { int nb=v[prev][l]; //cout<>n>>p; for(i=0; i>x>>y; v[x].push_back(y); v[y].push_back(x); } for(i=sqrt(n); i>=2; i--) { if(n%i==0) { j=n/i; if(2*i*j-i-j==p) { x=i; y=j; break; } } } int st; for(i=1;i<=n;i++) { if(v[i].size()==2) { arr[0][0]=i; used[i]=true; st=i; B=i; break; } } fout<=0;l--; */