Pagini recente »
2015-03-31-clasa-8-tema-27
|
Borderou de evaluare (job #707029)
|
Borderou de evaluare (job #218221)
|
Diferențe pentru runda/oji-2023-antrenament-ffa-v2 între reviziile 35 și 40
|
Cod sursă (job #403306)
Cod sursă (job
#403306)
#include <fstream>
using namespace std;
ifstream f("immortal.in");
ofstream g("immortal.out");
int n,m,rasp,t,l1[16],c1[16],c2[16],l2[16],r,v2[21][21],d1[5]={0,-1,0,1,0},d2[5]={0,0,1,0,-1};
struct
{
int x,y;
}v[16];
void bkt(int nr)
{
if(nr==1)
{
for(int i=1; i<t; i++)
{
g<<l1[i]<<" "<<c1[i]<<" "<<l2[i]<<" "<<c2[i]<<'\n';
}
r=1;
return;
}
if(r==1)
{
return;
}
for(int i=1; i<=t; i++)
{
if(v2[v[i].x][v[i].y]==1)
{
for(int j=1; j<=4; j++)
{
int l=v[i].x;
int c=v[i].y;
if(l+2*d1[j]<=n && l+2*d1[j]>=1 && c+2*d2[j]<=m && c+2*d2[j]>=1 && v2[l+d1[j]][c+d2[j]]==1 && v2[l+2*d1[j]][c+2*d2[j]]==0)
{
rasp++;
l1[rasp]=l;
c1[rasp]=c;
l2[rasp]=l+2*d1[j];
c2[rasp]=c+2*d2[j];
v2[l+d1[j]][c+d2[j]]=0;
v2[l+2*d1[j]][c+2*d2[j]]=1;
v2[l][c]=0;
v[i].x+=2*d1[j];
v[i].y+=2*d2[j];
bkt(nr-1);
if(r==1)
{
return;
}
rasp--;
v2[l+d1[j]][c+d2[j]]=1;
v2[l+2*d1[j]][c+2*d2[j]]=0;
v2[l][c]=1;
v[i].x=l;
v[i].y=c;
}
}
}
}
}
int main()
{
f>>n>>m>>t;
for(int i=1; i<=t; i++)
{
f>>v[i].x>>v[i].y;
v2[v[i].x][v[i].y]=1;
}
bkt(t);
return 0;
}