低调看

MESSI  •  2年前


include

include

include

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;

}


评论:

请先登录,才能进行评论