MESSI • 2年前
int n,x1,y1,d1,x2,y2,d2; int fxx[4]={0,1,0,-1},fxy[4]={1,0,-1,0}; bool stop1,stop2; bool book1[1005][1005],book2[1005][1005]; void r1(bool a) {
book1[x1][y1]=1;
int xx=x1+fxx[d1];
int yy=y1+fxy[d1];
if(xx<0||xx>=n||yy<0||yy>=n||book1[xx][yy])
{
if(a)
{
stop1=1;
return;
}
else
{
d1=(d1+1)%4;
r1(1);
}
}
else
{
x1=xx;
y1=yy;
}
} void r2(bool a) {
book2[x2][y2]=1;
int xx=x2+fxx[d2],yy=y2+fxy[d2];
if(xx<0||xx>=n||yy<0||yy>=n||book2[xx][yy])
{
if(a)
{
stop2=1;
return;
}
else
{
d2=(d2+3)%4;
r2(1);
}
}
else
{
x2=xx;
y2=yy;
}
} int main() {
int t;
scanf("%d",&t);
for(int i=1;i<=t;i++)
{
for(int r=0;r<=1004;r++)
{
for(int j=0;j<=1004;j++)
{
book1[r][j]=0;
book2[r][j]=0;
}
}
stop1=0,stop2=0;
scanf("%d%d%d%d%d%d%d",&n,&x1,&y1,&d1,&x2,&y2,&d2);
if(x1==x2&&y1==y2)
{
printf("%d %d\n",x1,y1);
}
else
{
while(1)
{
if(!stop1)
{
r1(0);
}
if(!stop2)
{
r2(0);
}
if(stop1&&stop2)
{
printf("-1\n");
break;
}
if(x1==x2&&y1==y2)
{
printf("%d %d\n",x1,y1);
break;
}
}
}
}
return 0;
}
评论:
请先登录,才能进行评论