Statement
这个问题受到一款名为 Can't Stop 的棋盘游戏的启发,该游戏由 Sid Sackson 设计。这个问题有类似的思路,但假设你从未玩过 Can't Stop。
你正在玩一个(非常大的)棋盘游戏。在这个游戏中,你得到一个包含 N 个 *掷骰组* 的序列。每个掷骰组由 D 个骰子掷出的数字组成。每个骰子掷出的数字是一个整数。
要赢得游戏,你必须找到序列中最大的 *完全令人惊叹的区间*。一个区间是任何连续的掷骰组序列。一个区间被称为完全令人惊叹的,如果存在 k 个数字,使得区间中的每个掷骰组都至少包含这 k 个数字中的一个。
例如,假设 D=2 且 k=3,掷骰组如下:
```
组 0: 10 20
组 1: 50 60
组 2: 70 30
组 3: 40 40
组 4: 30 30
组 5: 20 40
```
从组 0 到组 2 的区间是完全令人惊叹的,因为掷骰组 0-2 都包含 10、50 或 70。从组 1 到组 5 的区间是完全令人惊叹的,因为掷骰组 1-5 都包含 50、30 或 40。该区间包含 5 个掷骰组,并且是最大的完全令人惊叹的区间。
你的任务是输出最长完全令人惊叹区间中第一个和最后一个掷骰组的索引。如果存在多个相同长度的完全令人惊叹区间,输出第一个索引最小的那个区间的索引。注意,第一个掷骰组的索引为 0。
Input
输入的第一行给出测试用例的数量 T。接下来是 T 个测试用例。每个测试用例以三个用空格分隔的整数开始:N、D 和 k,如上所述。在下一行,将有 N*D 个整数。前 D 个整数将是第一个掷骰组的掷骰结果;接下来的 D 个整数将是第二个掷骰组的掷骰结果;依此类推。
### 数据范围
- 1 ≤ T ≤ 100.
- 1 ≤ D ≤ 4.
- 1 ≤ 每个骰子掷出的数字 ≤ 10.
- 对于6个测试用例,1 ≤ N ≤ 10.
- 对于所有其他测试用例,1 ≤ N ≤ 10.
- k = 2.
- 2 ≤ k ≤ 3.
Output
按测试用例顺序逐个输出答案。对于每个测试用例,输出一行,包含 "y z",其中 y 和 z 是如上所述的最长完全令人惊叹区间的第一个和最后一个索引(如果并列,则使用最低索引)。
Examples
Input
4
8 1 2
1 2 3 2 4 5 4 6
4 3 2
1 2 3 4 5 6 7 8 9 10 11 12
6 2 3
10 20 50 60 70 30 40 40 30 30 20 40
10 1 3
2 4 3 1 4 5 3 1 1 2Output
1 3
0 1
1 5
1 4Constraints
- Time limit: 10000 ms
- Memory limit: 1048576 KB
- Tag: search
- Tag: two-pointers