Pagini recente »
Monitorul de evaluare
|
Monitorul de evaluare
|
Monitorul de evaluare
|
Istoria paginii runda/sim_info13/clasament
|
Cod sursă (job #295615)
Cod sursă (job
#295615)
#include <stdlib.h>
#include <fstream>
using namespace std;
ifstream fi("immortal.in");
ofstream fo("immortal.out");
int SL1[20], SC1[20], SL2[20] ,SC2[20];
int n,m,I,i,x,y,A[21][21];
int dl[4]={-1,0,1,0};
int dc[4]={0,1,0,-1};
void g( int k)
{
int i,lin,col,d,lnou,cnou,lp,cp;
if(k==I-1)
{
for (i=1;i<=k;i++)
fo<<SL1[i]<<" "<<SC1[i]<<" "<<SL2[i]<<" "<<SC2[i]<<"\n";
fi.close();
fo.close();
exit(0);
}
for (lin=1;lin<=n;lin++)
for (col=1;col<=m;col++)
if (A[lin][col]==1)
for (d=0;d<=3;d++)
{
lnou=lin+2*dl[d];
cnou=col+2*dc[d];
lp=lin+dl[d];
cp=col+dc[d];
if (A[lnou][cnou]==0 && A[lp][cp]==1 && lnou>=1 && lnou<=n && cnou>=1 && cnou<=m)
{
A[lp][cp]=0;
A[lnou][cnou]=1;
A[lin][col]=0;
SL1[k+1]=lin;
SC1[k+1]=col;
SL2[k+1]=lnou;
SC2[k+1]=cnou;
g(k+1);
A[lp][cp]=1;
A[lnou][cnou]=0;
A[lin][col]=1;
}
}
}
int main()
{
fi>>n>>m>>I;
for(i=1; i<=I; i++)
{
fi>>x>>y;
A[x][y]=1;
}
g(0);
fi.close();
fo.close();
return 0;
}