Pagini recente »
Istoria paginii runda/c6_6/clasament
|
Cod sursă (job #675960)
|
Cod sursă (job #692164)
|
2024-11-12-clasa-5-tema-14
|
Cod sursă (job #670934)
Cod sursă (job
#670934)
#include <bits/stdc++.h>
using namespace std;
ifstream in("immortal.in");
ofstream out("immortal.out");
int di[]={0,1,0,-1};
int dj[]={1,0,-1,0};
const int NMAX=25;
bool M[NMAX][NMAX];
struct nemuritor{int i;int j;}N[NMAX];
struct lupta{int i1;int j1;int i2;int j2;}V[NMAX];
int n,m,I;
int cnt;
bool gasit;
bool in_matrice(int i, int j){
return (i>0 && j>0 && i<=n && j<=m);
}
void afisare(){
gasit=1;
for(int i=1; i<I; i++)
out<<V[i].i1<<" "<<V[i].j1<<" "<<V[i].i2<<" "<<V[i].j2<<'\n';
}
void gnikcartkcab(int k){
int i,j,ni,nj,nni,nnj;
if(!gasit){
for(int ii=1; ii<=I; ii++){
i=N[ii].i;
j=N[ii].j;
if(M[i][j]==1){
for(int kk=0; kk<4; kk++){
ni=i+di[kk];
nj=j+dj[kk];
nni=ni+di[kk];
nnj=nj+dj[kk];
if(in_matrice(nni,nnj) && M[ni][nj]==1 && M[nni][nnj]==0){
V[k].i1=i;
V[k].j1=j;
V[k].i2=nni;
V[k].j2=nnj;
M[ni][nj]=0;
M[nni][nnj]=1;
M[i][j]=0;
N[ii].i=nni;
N[ii].j=nnj;
cnt--;
if(cnt==1 && !gasit)
afisare();
else if(!gasit)
gnikcartkcab(k+1);
M[ni][nj]=1;
M[nni][nnj]=0;
M[i][j]=1;
N[ii].i=i;
N[ii].j=j;
cnt++;
}}}}}
}
int main()
{
int i,x,y;
in>>n>>m>>I;
cnt=I;
for(i=1; i<=I; i++){
in>>x>>y;
M[x][y]=1;
N[i].i=x;
N[i].j=y;
}
gnikcartkcab(1);
return 0;
}