1965107_ac_15ms_64k.c

来自「北大大牛代码 1240道题的原代码 超级权威」· C语言 代码 · 共 63 行

C
63
字号
# include <stdio.h>
# include <string.h>

int n, num;
int mark[100][100];

void exd(int a, int b, int v)
{
	mark[a][b] = 2;
	num++;
	if(a>0&&mark[a-1][b]==v)
		exd(a-1,b,v);
	if(a<n-1&&mark[a+1][b]==v)
		exd(a+1,b,v);
	if(b>0&&mark[a][b-1]==v)
		exd(a,b-1,v);
	if(b<n-1&&mark[a][b+1]==v)
		exd(a,b+1,v);
}
int main()
{
	
	int i, j, t1, t2, flag;

	while(scanf("%d",&n)==1&&n)
	{
		flag = 0;
		memset(mark,0,sizeof(mark));
		for(i = 0; i < n-1; i++)
		{
			num = 0;
			for(j = 0; j < n; j++)
			{
				scanf("%d%d",&t1,&t2);
				mark[t1-1][t2-1] = 1;
			}
			if(flag)
				continue;
			exd(t1-1,t2-1,1);
			if(num != n)
				flag = 1;
		}
		if(flag==0)
		{
			num = 0;
			for(i = 0; i < n; i++)
				for(j = 0; j < n; j++)
					if(mark[i][j]==0)
					{
						exd(i,j,0);
						if(num!=n)
							flag = 1;
						goto ed;
					}
		}
ed :  
		if(flag)
			printf("wrong\n");
		else
			printf("good\n");
	}
	return 1;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?