Pagini recente »
Borderou de evaluare (job #520035)
|
Borderou de evaluare (job #207029)
|
Istoria paginii runda/lmk_9a
|
Monitorul de evaluare
|
Cod sursă (job #478200)
Cod sursă (job
#478200)
#include <bits/stdc++.h>
#define x first
#define y second
using namespace std;
ifstream fi("immortal.in");
ofstream fo("immortal.out");
int N,M,I,i,j,x,y,xx,yy;
typedef
struct
{
int a,b,c,d;
}patr;
patr A[20];
bool B[21][21],b;
short X[]={-1,0,1,0},
Y[]={0,1,0,-1};
bool OK(int x, int y)
{
return(x>0 && x<=N && y>0 && y<=M && !B[x][y]);
}
void back(int x, int y, int q)
{
if(q==I)b=1;
for(int k=0; k<4; k++)
{
xx=x+2*X[k];
yy=y+2*Y[k];
if(OK(xx,yy) && B[x+X[k]][y+Y[k]]) A[q].a=x, A[q].b=y, A[q].c=xx, A[q].d=yy, back(xx,yy,q+1);
}
}
int main()
{
fi >> N >> M >> I;
for(i=1; i<=I; i++)
{
fi >> x >> y;
B[x][y]=1;
}
for(i=1; i<=N && !b; i++)
{
for(j=1; j<=M; j++)
if(B[i][j])back(i,j,1);
}
for(i=1; i<I; i++)
fo << A[i].a << " " << A[i].b << " " << A[i].c << " " << A[i].d << '\n';
}