Pagini recente »
Borderou de evaluare (job #413617)
|
Borderou de evaluare (job #181801)
|
Clasament hello.2
|
Borderou de evaluare (job #772557)
|
Cod sursă (job #417644)
Cod sursă (job
#417644)
#include <bits/stdc++.h>
#define f first
#define s second
using namespace std;
ifstream in("immortal.in");
ofstream out("immortal.out");
short dl[4]= {2,0,-2,0};
short dc[4]= {0,2,0,-2};
pair<int,int> a[16];
pair<pair<int,int>,pair<int,int>>r[16];
bool v[21][21], gata=0;
int n,m,k,nr=0;
void bk()
{
int i,j,p;
if(nr==k-1)
{
for(i=1; i<k; ++i)
out<<r[i].f.f<<" "<<r[i].f.s<<" "<<r[i].s.f<<" "<<r[i].s.s<<"\n";
gata=1;
return;
}
for(i=1; i<=k && !gata; ++i)
if(v[a[i].f][a[i].s])
for(j=0; j<4 && !gata; ++j)
if(v[a[i].f+dl[j]/2][a[i].s+dc[j]/2] && a[i].f+dl[j]<=n && a[i].f+dl[j]>0 && a[i].s+dc[j]<=m && a[i].s+dc[j]>0 && !v[a[i].f+dl[j]][a[i].s+dc[j]])
{
p=j;
v[a[i].f+dl[p]/2][a[i].s+dc[p]/2]=0;
r[++nr]= {{a[i].f, a[i].s},{a[i].f+dl[p], a[i].s+dc[p]}};
v[a[i].f+dl[p]][a[i].s+dc[p]]=1;
v[a[i].f][a[i].s]=0;
a[i].f+=dl[p];
a[i].s+=dc[p];
bk();
--nr;
a[i].f-=dl[p];
a[i].s-=dc[p];
v[a[i].f+dl[p]][a[i].s+dc[p]]=0;
v[a[i].f+dl[p]/2][a[i].s+dc[p]/2]=1;
v[a[i].f][a[i].s]=1;
}
return;
}
int main()
{
int i,j;
in>>n>>m>>k;
for(i=1; i<=k; ++i)
in>>a[i].f>>a[i].s, v[a[i].f][a[i].s]=1;
bk();
return 0;
}