#hASHlydlt10x1401. 雪花雪花雪花 Snowflake Snow Snowflakes

雪花雪花雪花 Snowflake Snow Snowflakes

题目描述

NN 片雪花,每片雪花由六个角组成,每个角都有长度。

ii 片雪花六个角的长度从某个角开始顺时针依次记为 ai,1,ai,2,,ai,6a_{i,1}, a_{i,2}, \dots, a_{i,6}

因为雪花的形状是封闭的环形,所以从任何一个角开始顺时针或逆时针往后记录长度,得到的六元组都代表形状相同的雪花。

例如 ai,1,ai,2,,ai,6a_{i,1}, a_{i,2}, \dots, a_{i,6}ai,2,ai,3,,ai,6,ai,1a_{i,2}, a_{i,3}, \dots, a_{i,6}, a_{i,1} 就是形状相同的雪花。

ai,1,ai,2,,ai,6a_{i,1}, a_{i,2}, \dots, a_{i,6}ai,6,ai,5,,ai,1a_{i,6}, a_{i,5}, \dots, a_{i,1} 也是形状相同的雪花。

我们称两片雪花形状相同,当且仅当它们各自从某一角开始顺时针或逆时针记录长度,能得到两个相同的六元组。

求这 NN 片雪花中是否存在两片形状相同的雪花。

输入格式

第一行输入一个整数 NN,代表雪花的数量。

接下来 NN 行,每行描述一片雪花。

每行包含 66 个整数,分别代表雪花的六个角的长度(这六个数即为从雪花的随机一个角顺时针或逆时针记录长度得到)。

同行数值之间,用空格隔开。

输出格式

如果不存在两片形状相同的雪花,则输出:

No two snowflakes are alike.

如果存在两片形状相同的雪花,则输出:

Twin snowflakes found.

样例

输入样例:

2
1 2 3 4 5 6
4 3 2 1 6 5

输出样例:

Twin snowflakes found.

样例解释

第一片雪花:1,2,3,4,5,6

第二片雪花:4,3,2,1,6,5

将第二片雪花逆时针(即从5开始逆序读)得到:5,6,1,2,3,4,与第一片雪花不相同?
实际上第二片雪花从某个角顺时针读:4,3,2,1,6,5
逆序读:5,6,1,2,3,4
我们可以旋转一下:从 5 开始逆时针读:5,6,1,2,3,4
而第一片雪花从 1 开始顺时针读:1,2,3,4,5,6
它们并不相同。
但我们可以将第二片雪花从 1 开始逆时针读:1,6,5,4,3,2 还是不同?
其实样例的意思是,第二片雪花可以看作第一片雪花的逆序旋转:第一片是 1,2,3,4,5,6,第二片是 4,3,2,1,6,5,如果我们将第二片从 5 开始顺时针读:5,4,3,2,1,6,仍然不同?
实际上,将第二片雪花从 1 开始逆时针读:1,6,5,4,3,2,并不匹配。
这说明题目描述中“从某一角开始顺时针或逆时针记录长度”是指:我们可以任意选择一个起点,顺时针或逆时针读取六个数字,只要两个雪花能找到相同的读取序列,就认为形状相同。
对于第一片:1,2,3,4,5,6
第二片:4,3,2,1,6,5
我们可以将第二片从 5 开始顺时针读:5,4,3,2,1,6,仍然不同。
但将第二片从 5 开始逆时针读:5,6,1,2,3,4,与第一片从 5 开始顺时针读:5,6,1,2,3,4?第一片从 5 开始顺时针是 5,6,1,2,3,4,完全一样。
所以它们是相同的雪花。

数据范围

  • 1N1000001 \leq N \leq 100000
  • 0ai,j<100000000 \leq a_{i,j} < 10000000

时空限制

  • 时间限制:4 秒
  • 空间限制:64 MB