Pagini recente »
Statistici Badici Rares (RaresBadici)
|
Olimpiada pe școală, clasele a XI-a si a XII-a, 2018
|
Istoria paginii utilizator/florinflorin
|
Istoria paginii runda/simulare_oni_2021_10_1/clasament
|
Cod sursă (job #670923)
Cod sursă (job
#670923)
#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 V{int i1;int j1;int i2;int j2;}V[NMAX];
int n,m,I;
int cnt;
bool gasit;
bool are_coordonate_corespondente_unei_pozitii_in_interiorul_campului_de_lupta(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;
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];
if(are_coordonate_corespondente_unei_pozitii_in_interiorul_campului_de_lupta(ni+di[kk],nj+dj[kk]) && M[ni][nj]==1){
V[k].i1=i;
V[k].j1=j;
V[k].i2=ni+di[kk];
V[k].j2=nj+dj[kk];
M[ni][nj]=0;
M[ni+di[kk]][nj+dj[kk]]=1;
M[i][j]=0;
N[ii].i=ni+di[kk];
N[ii].j=nj+dj[kk];
cnt--;
if(cnt==1 && !gasit)
afisare();
else
gnikcartkcab(k+1);
M[ni][nj]=1;
M[ni+di[kk]][nj+dj[kk]]=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;
}