在一家大型餐厅里,有 N 位常客(2 ≤ N ≤ 10^5;),他们被编号为1到 N。每位常客都有自己特别喜欢的一种菜品口味 hi(1 ≤ hi ≤ N)。 餐厅的老板希望所有的常客都能喜欢同一种菜品口味,这样在采购食材和制定菜单时就能更加方便和高效。
为了实现这个目标,老板可以组织试吃活动。一次试吃活动会邀请编号从 i 到 j 的连续范围内的所有常客参加。如果在试吃活动中,有一种菜品口味是小组中超过一半的常客喜欢的,那么在这次试吃活动结束后,该小组内的所有常客最终都会喜欢这种菜品口味。如果不存在这样的菜品口味,那么常客们的口味偏好将保持不变。
例如,在一个由16位常客组成的试吃活动中,需要有其中9名或更多的常客喜欢同一种菜品口味,才能使其余常客改变他们的喜好以与之一致。
老板想知道,哪些类型的菜品口味有可能最终让所有的常客都喜欢。老板一次只能组织一次试吃活动,但为了达到所有常客都喜欢同一种菜品口味的目标,他可以根据需要任意多次地组织试吃活动。
从文件 eat.in 中读入数据。 输入的第一行包含一个整数 T,为独立的测试用例的数量(1 ≤ T ≤ 10)。 每一个测试用例的第一行包含 N。 第二行包含 N 个整数,为常客们喜爱的菜品口味 hi。 输入保证所有测试用例的 N 之和不超过2 · 10^5。
输出到文件 eat.out 中。
输出 T 行,对于每个测试用例输出一行。
如果可能使所有常客同时喜欢同一种菜品口味,则以升序输出所有可能的菜品口味,否则输出 −1。
在同一行内输出一列整数时,相邻的数用空格分隔,并确保行末没有多余空格。
5 5 1 2 2 2 3 6 1 2 3 1 2 3 6 1 1 1 2 2 2 3 3 2 3 2 2 1
2 -1 1 2 3 -1
【样例 1 解释】 在输入样例中,有 5 个测试用例。 在第一个测试用例中,仅可能使所有常客喜欢菜品口味2。餐厅的老板可以通过组织一次所有常客的试吃活动来达到一目的。 在第二个测试用例中,可以证明没有常客会改变她们喜爱的菜品口味。
在第三个测试用例中,有可能使所有常客喜欢菜品口味1,可以通过组织三次试吃活动来达到这一目的——首先使常客1到4进行一次试吃活动,随后使常客1到5进行一次试吃活动,随后使常客1到6进行一次试吃活动。以类似的逻辑,依次操作常客3到 6,随后是常客2到6,随后是常客1到6,我们可以使所有常客喜欢菜品口味2。
在第四个测试用例中,有可能使所有常客喜欢菜品口味3,可以通过主持一次所有常客的试吃活动来达到这一目的。
在第五个测试用例中,可以证明没有常客会改变她们喜爱的菜品口味。
【数据范围】
数据约束和子任务测试点2:N =2。
测试点3 − 4:N ≤ 50。
测试点5 − 6:对于所有的1 ≤ i ≤ N−1,有 hi ≤ hi+1。
测试点7 − 10:没有额外限制。