Pagini recente »
Cod sursă (job #478200)
|
lmk_3
|
Borderou de evaluare (job #777712)
|
Istoria paginii runda/contestt_clasele_5_6_7/clasament
|
Cod sursă (job #478198)
Cod sursă (job
#478198)
#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;
pair<pair<int,int>,pair<int,int> > 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]);
}
back(int x, int y, int q)
{
if(q==I-1)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].x.x=x, A[q].x.y=y, A[q].y.x=xx, A[q].y.x=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].x.x << " " << A[i].x.y << " " << A[i].y.x << " " << A[i].y.x << '\n';
}