⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pku2585.cpp

📁 这是ACM 方面的资料 是PKU的 北京大学的出来的
💻 CPP
字号:
#include <stdio.h>
#include <string.h>
#define ONLINE

#ifndef ONLINE
#include <time.h>
#endif

int M[4][4];
int p[9][9];
int stack[10];
int top;
int in[10];

void Solve()
{
	int i, j, ii, jj, v, cnt, pos;
	for (i = 0; i < 4; i++)
	{
		for (j = 0; j < 4; j++)
		{
			scanf("%d", &M[i][j]);
		}
	}
	memset(p, 0, sizeof(p));
	for (i = 0; i < 9; i++)
	{
		ii = i / 3;
		jj = i % 3;
		p[i][M[ii][jj] - 1] = 1;
		p[i][M[ii + 1][jj] - 1] = 1;
		p[i][M[ii][jj + 1] - 1] = 1;
		p[i][M[ii + 1][jj + 1] - 1] = 1;
		p[i][i] = 0;
	}
	v = -1;
	memset(in, 0, sizeof(in));
	top = 0;
	for (i = 0; i < 9; i++)
	{
		for (j = 0; j < 9; j++)
		{
			in[i] += p[j][i];
		}
		if (in[i] == 0)
		{
			stack[top] = i;
			top++;
		}
	}
	cnt = 0;
	while (top)
	{
		cnt++;
		pos = stack[--top];
		for (i = 0; i < 9; i++)
		{
			if (p[pos][i])
			{
				in[i]--;
				if (in[i] == 0)
				{
					stack[top++] = i;
				}
			}
		}
	}
	if (cnt < 9)
	{
		printf("THESE WINDOWS ARE BROKEN\n");
	}
	else
	{
		printf("THESE WINDOWS ARE CLEAN\n");
	}
}

int main()
{

#ifndef ONLINE
	freopen("PKU2585.in", "r", stdin);
	clock_t start = clock();
#endif
	char s[15];
	while (1)
	{
		scanf("%s", s);
		if (strcmp(s, "ENDOFINPUT") == 0)
		{
			break;
		}
		Solve();
		scanf("%s", s);
	}
#ifndef ONLINE
	printf("TIME:%dms\n", clock() - start);
#endif
	return 0;
}

⌨️ 快捷键说明

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