만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

다수 의견

시간 제한2초메모리 제한1024 MB

요약
연속한 구간마다 과반수 의견으로 소들의 선호를 바꾸어, 모든 소가 같은 건초를 좋아하게 만들 수 있는 건초 종류를 오름차순으로 구합니다. 불가능하면 -1을 출력합니다.
난이도

보통10점 중 7점

유형
배열, 분할 정복, 그리디
정답자
아직 제출이 없습니다

문제

Farmer John은 소들에게 어떤 종류의 건초를 사야 할지 정해야 합니다.

Farmer John의 소는 NN마리(2≤N≤1052 \le N \le 10^5)이고, 1번부터 NN번까지 번호가 붙어 있습니다. 각 소는 정확히 한 종류의 건초를 좋아하며, ii번 소는 hih_i(1≤hi≤N1 \le h_i \le N) 종류를 좋아합니다. Farmer John은 모든 소가 같은 종류의 건초를 좋아하기를 바랍니다.

그는 포커스 그룹을 열 수 있습니다. 포커스 그룹은 번호가 ii부터 jj까지인 소들(양 끝 포함)을 모아 회의를 엽니다. 그룹 안 소의 절반을 넘는 소가 같은 종류의 건초를 좋아하면, 회의가 끝난 뒤 그룹의 모든 소가 그 종류를 좋아하게 됩니다. 그런 종류가 없으면 어떤 소도 좋아하는 건초를 바꾸지 않습니다. 예를 들어 16마리로 이루어진 그룹에서는 최소 9마리가 같은 종류를 좋아해야 나머지 소들이 그 종류로 바뀝니다.

Farmer John은 모든 소가 동시에 좋아하게 될 수 있는 건초 종류를 알고 싶어 합니다. 포커스 그룹은 한 번에 하나만 열 수 있지만, 모든 소가 같은 종류를 좋아하게 될 때까지 필요한 만큼 여러 번 열 수 있습니다.

입력

첫 줄에 테스트 케이스의 개수 TT(1≤T≤101 \le T \le 10)가 주어집니다.

각 테스트 케이스는 두 줄로 이루어집니다. 첫 줄에는 NN이, 둘째 줄에는 소들이 좋아하는 건초 종류 h1,h2,…,hNh_1, h_2, \ldots, h_N이 순서대로 주어집니다.

모든 테스트 케이스의 NN을 합하면 2⋅1052 \cdot 10^5를 넘지 않습니다.

출력

TT줄을 출력합니다. 테스트 케이스마다 한 줄씩 출력합니다.

모든 소가 같은 종류의 건초를 좋아하게 만들 수 있으면, 가능한 종류를 모두 오름차순으로 한 줄에 공백 하나로 구분해 출력합니다. 그렇지 않으면 −1-1을 출력합니다. 줄 끝에 불필요한 공백을 남기지 않습니다.

예제1

  1. 예제 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