Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define N 25
- using namespace std;
- ifstream fin("immortal.in");
- ofstream fout("immortal.out");
- struct batalie
- {
- int xs,ys, xf, yf;
- }vec[N*N];
- int n, m,k;
- bool A[N][N];
- int dx[]={-1,1,0,0};
- int dy[]={0,0,-1,1};
- void Citire()
- {
- int x,y;
- fin>>n>>m>>k;
- for(int i=1;i<=k;i++)
- {
- fin>>x>>y;
- A[x][y]=1;
- }
- }
- void Afisare()
- {
- for(int i=1;i<=k-1;i++)
- fout<<vec[i].xs<<' '<<vec[i].ys<<' '<<vec[i].xf<<' '<<vec[i].yf<<'\n';
- }
- bool Inside(int i, int j)
- {
- return i>=1 && i<=n &&j>=1&&j<=m;
- }
- void Back(int key)
- {
- int x,y, l,c;
- for(int i=1;i<=n;i++)
- for(int j=1;j<=m;j++)
- if(A[i][j])
- {
- for(int d=0;d<4;d++)
- {
- x=i+dx[d];
- y=j+dy[d];
- if(A[x][y]) ///avem un nemu
- {
- l=x+dx[d] ;
- c=y+dy[d];
- if(Inside(l,c)&&A[l][c]==0)
- {
- A[i][j]=0; A[x][y]=0;
- A[l][c]=1;
- ///
- vec[key].xs=i; vec[key].ys=j;
- vec[key].xf=l; vec[key].yf=c;
- if(key==k-1) {Afisare(); exit(0);}
- else Back(key+1);
- A[i][j]=1; A[x][y]=1;
- A[l][c]=0;
- }
- }
- }
- }
- }
- int main()
- {
- Citire();
- Back(1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement