#loj5531. 「PA 2018 Final」Na kawałeczki
「PA 2018 Final」Na kawałeczki
[AdditionalFile5531.zip](file://AdditionalFile5531.zip?type=additional_file)
#5531. 「PA 2018 Final」Na kawałeczki
标签: 传统 | 时间限制: 2000 ms | 内存限制: 256 MiB |
题目描述
题目译自 PA 2018 Final Na kawałeczki
有些孩子梦想得到自行车、电动火车或娃娃屋。然而,Bituś 在给圣诞老人的信中许下了一个完全不同的愿望。他的愿望实现了!小男孩在圣诞树下收到了一个彩色模型切割套装:剪刀、一张矩形纸(也称为卡片)和一组蜡笔。孩子们不认识像「李子色」或「紫红色」这样奇怪的颜色名称,所以蜡笔的颜色用连续的自然数编号。
Bituś 将矩形的四个边按顺时针方向分别涂成颜色 、、、。然后,他将初始矩形切割成 个较小的块。整个操作包括 个步骤。每个步骤包括取出一块碎片,用蜡笔画一条连接两个边中点的线段,然后沿画线切割该碎片。第 个步骤使用的蜡笔颜色为 ,因此切割后得到的两块较小碎片各有一个颜色为 的边。(可以证明,所有碎片都是凸形图形,因此每次切割确实会产生恰好两块较小碎片。)
Bituś 记录了连接边的颜色:在第 个步骤中,他用线段连接了颜色为 和 的边。然而,你怀疑 Bituś 在某个时刻可能犯了错误。对于给定的步骤序列 ,找到该序列的最长前缀长度,即 Bituś 可能执行的正确步骤(切割)序列。
Bituś 讨厌重复,因此每个无序对 最多出现一次。
输入格式
输入的第一行包含一个整数 ,表示输入中的测试用例数量。
每个测试用例描述的第一行包含一个整数 ,表示执行的步骤数量。
接下来的 行描述步骤:第 行包含两个不同的整数 和 ,表示第 个步骤的描述。在同一个测试用例中,无序对是不同的,即对于 ,不会出现 且 或 且 的情况。
输出格式
在第 行输出一个整数,表示第 个测试用例中步骤序列的最长正确前缀长度。
样例
输入
2
4
3 1
1 5
4 6
2 4
5
3 4
1 2
5 6
1 5
8 7
输出
3
5
下图展示了如何为第一个测试用例获得长度为 的正确前缀。执行第四个步骤是不可能的,因为没有一块碎片同时包含颜色为 和 的边。请注意,如果在第二个步骤中对右侧碎片执行 的切割,则无法执行第三个步骤的切割。
