CF1935B.Informatics in MAC
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
In the Master's Assistance Center, Nyam-Nyam was given a homework assignment in informatics.
There is an array a of length n , and you want to divide it into k>1 subsegments † in such a way that the MEX‡ on each subsegment is equal to the same integer.
Help Nyam-Nyam find any suitable division, or determine that it does not exist.
† A division of an array into k subsegments is defined as k pairs of integers (l1,r1),(l2,r2),…,(lk,rk) such that li≤ri and for each 1≤j≤k−1 , lj+1=rj+1 , and also l1=1 and rk=n . These pairs represent the subsegments themselves.
‡MEX of an array is the smallest non-negative integer that does not belong to the array.
For example:
- MEX of the array [2,2,1] is 0 , because 0 does not belong to the array.
- MEX of the array [3,1,0,1] is 2 , because 0 and 1 belong to the array, but 2 does not.
- MEX of the array [0,3,1,2] is 4 , because 0 , 1 , 2 , and 3 belong to the array, but 4 does not.
输入格式
Each test consists of multiple test cases. The first line contains a single integer t ( 1≤t≤104 ) — the number of test cases. The description of the test cases follows.
The first line of each test case contains a single integer n ( 2≤n≤105 ) — the length of the array a .
The second line of each test case contains n integers a1,a2,…,an ( 0≤ai<n ) — the elements of the array a .
It is guaranteed that the sum of n over all test cases does not exceed 105 .
输出格式
For each test case, output a single integer −1 if a suitable division does not exist.
Otherwise, on the first line, output an integer k ( 2≤k≤n ) — the number of subsegments in the division.
Then output k lines — the division into subsegments. The i -th line should contain two integers li and ri ( 1≤li≤ri≤n ) — the boundaries of the i -th subsegment.
The following conditions must be satisfied:
- For all 1≤j≤k−1 , lj+1=rj+1 ;
- l1=1 , rk=n .
If there are multiple possible solutions, output any of them.
输入输出样例
输入#1
5 2 0 0 5 0 1 2 3 4 8 0 1 7 1 0 1 0 3 3 2 2 2 4 0 1 2 0
输出#1
2 1 1 2 2 -1 3 1 3 4 5 6 8 3 1 1 2 2 3 3 -1
说明/提示
In the first test case, the array a can be divided into 2 subsegments with boundaries [1,1] and [2,2] :
- MEX of the first subsegment [0] is 1 , as 0 belongs to the subsegment, but 1 does not.
- MEX of the second subsegment [0] is 1 , as 0 belongs to the subsegment, but 1 does not.
In the second test case, it can be proven that the required division does not exist.
In the third test case, the array a can be divided into 3 subsegments with boundaries [1,3] , [4,5] , [6,8] :
- MEX of the first subsegment [0,1,7] is 2 , as 0 and 1 belong to the subsegment, but 2 does not.
- MEX of the second subsegment [1,0] is 2 , as 0 and 1 belong to the subsegment, but 2 does not.
- MEX of the third subsegment [1,0,3] is 2 , as 0 and 1 belong to the subsegment, but 2 does not.