给出一个包含平面上格点的集合(格点的定义是 , 坐标均为整数),我们将其称作“模式集合”。
接下来给出另外的几个包含平面上点的集合。我们想要考察后面给出的哪些集合和“模式集合”是“相似”的,即:该集合可以通过 旋转,平移,翻转,和缩放 使得该集合和“模式集合”完全相同。
例: 这个集合和 这个集合是相似的,但和 这个集合是不相似的。
你的任务是写一个程序,使得:
能从标准输入读取“模式集合”和需要考察(是否相似)的集合,判断哪些集合和“模式集合”相似,并将结果输出到标准输出。
标准输入的第一行有一个整数 ,代表“模式集合”中的点数
接下来 行,每行两个数,用一个空格分隔,第 行的两个数分别代表“模式集合”中第 个点的 坐标和 坐标。
接下来一行一个整数 ,代表有 个需要考察的集合
接下来有 个对需要考察的集合的描述:
每个描述的第一行包含一个整数 ,代表该集合中的点数。
接下来 行每行包含该集合中一个点的 坐标和 坐标,用一个空格分隔。
包含在同一集合中的点两两不同。
你的程序应该向标准输出流输出 行,每行代表对于一个需要考察的集合的结果。
如果第 个需要考察的集合与“模式集合”相似,则第 行应包含单词 TAK,即波兰语中的是。
TAK
否则第 行应包含单词 NIE,即波兰语中的否。
NIE
3 0 0 2 0 2 1 2 3 4 1 6 5 4 5 3 4 0 6 0 5 -1
TAK NIE
对于 的数据 :
且 、 是整数。
“模式集合”中的点两两不同。