#include #include #include #include #include #include #include #include #include using namespace std; long long n,p,row1[254],col1[254],row2[254],col2[254],b,row,col,mas[128][128],masi[128][128],broi,dist[128][128],disti[128][128],bri[256],x,y,j; void rec(long long i, long long x, long long y) { if(i==p&&x==row2[i]&&y==col2[i]) { mas[x][y]=i; long long br=0; for(long long j=0; j0)br++; } } if(br>broi) { for(int j=0; jp)break; rec(j, row1[j], col1[j]); } } mas[r][c]=i; if(c-1>=0) { if((mas[r][c-1]==0)||(r==row2[i]&&c-1==col2[i])) { dist[r][c-1]=dist[r][c]+1; rec(i, r, c-1); if(r!=row2[i]&&c-1!=col2[i]&&r!=row1[i]&&c-1!=col1[i])mas[r][c-1]=0; dist[r][c-1]=0; } } if(c+1=0) { if((mas[r-1][c]==0)||(r-1==row2[i]&&c==col2[i])) { dist[r-1][c]=dist[r][c]+1; rec(i, r-1, c); if(r-1!=row2[i]&&c!=col2[i]&&r-1!=row1[i]&&c!=col1[i])mas[r-1][c]=0; dist[r-1][c]=0; } } if(r+1