#P3194. Equidivisions

Equidivisions

题目描述

一个 n×nn \times n 的方格阵列的等分划分是指将该阵列的 n2n^2 个格子划分为恰好 nn 个集合,每个集合包含 nn相邻的格子。两个格子相邻的定义是它们有一条公共边。

一个好的等分划分要求每个集合中的所有格子构成一个连通区域。图中展示了一个 5×55 \times 5 方格的好等分划分和一个错误的等分划分:

  • 在第二个例子中,标号为 44 的格子分布在三个不连通的区域,标号为 55 的格子分布在两个不连通的区域。

你需要编写一个程序,判断给定的方格阵列等分划分是“好”还是“坏”。

输入格式

  • 每个测试用例的第一行是一个整数 nn0<n<1000 < n < 100),表示方格阵列的边长。
  • 接下来的 n1n - 1 行,每行描述一个划分集合,包含若干个非负整数。这些整数成对出现,表示格子的坐标 (a1,a2),(a3,a4),(a_1, a_2), (a_3, a_4), \dots,即这些格子属于同一个集合。
  • 最后一个集合由所有未被提及的格子组成。
  • 如果输入 n=0n = 0,表示输入结束。

输出格式

对于每个测试用例,如果等分划分是好的,输出 goodgood,否则输出 wrongwrong。输出顺序需与输入顺序一致。

样例输入

2  
1 2 2 1  
5  
1 1 1 2 1 3 3 2 2 2  
2 1 4 2 4 1 5 1 3 1  
4 5 5 2 5 3 5 5 5 4  
2 5 3 4 3 5 4 3 4 4  
5  
1 1 1 2 1 3 3 2 2 2  
2 1 3 1 4 1 5 1 4 2  
4 5 5 2 5 3 5 5 5 4  
2 4 1 4 3 5 4 3 4 4  
0  

样例输出

wrong  
good  
wrong  

来源

在线评测系统题库