Pagini recente »
Istoria paginii runda/doar-pentru-cls-a-v-a/clasament
|
Istoria paginii runda/vaslui_cls1112_14.02/clasament
|
Monitorul de evaluare
|
Cod sursă (job #293091)
Cod sursă (job
#293091)
#include<fstream>
using namespace std;
ifstream f("immortal.in");
ofstream g("immortal.out");
int i,j,p,q,pp,u,x,y,n,k,m,nr;
int l[401],c[401],a[22][22],b[22][22];
int r[402],s[402];
int main()
{
f>>n>>m>>k;
for(i=1;i<=k;i++)
{f>>l[i]>>c[i];
a[l[i]][c[i]]=1;
}
i=i;
for(i=k;i>=1;i--)
{
p=1;
u=1;
nr=0;
pp=0;
r[1]=l[i];
s[1]=c[i];
for(j=1;j<=n;j++)
for(q=1;q<=m;q++)
b[j][q]=a[j][q];
while(p<=u)
{
nr=0;
x=r[p];
y=s[p];
if(b[x-1][y]&&(x-2>0)&&b[x-2][y]==0)
{
b[x-1][y]=0;
nr++;
u++;
r[u]=x-2;
s[u]=y;
}
if(b[x+1][y]&&(x+2<=n)&&b[x+2][y]==0)
{
b[x+1][y]=0;
nr++;
u++;
r[u]=x+2;
s[u]=y;
}
if(b[x][y-1]&&(y-2>0)&&b[x][y-2]==0)
{
b[x][y-1]=0;
nr++;
u++;
r[u]=x;
s[u]=y-2;
}
if(b[x][y+1]&&(y+2<=m)&&b[x][y+2]==0)
{
b[x][y+1]=0;
nr++;
u++;
r[u]=x;
s[u]=y+2;
}
p++;
if(nr)
pp++;
if(pp==k-1)
break;
};
if(pp+1==k)
break;
}
if(pp+1==k)
for(n=1;n<u;n++)
{
g<<r[j]<<" "<<s[j]<<" ";
g<<r[j+1]<<" "<<s[j+1]<<" ";
g<<'\n';
}
f.close();
g.close();
return 0;
}