해결한 사람
0
명
정답률
0.00
%
시간 제한
2000
ms
메모리 제한
245
MB
Dr. Dolittle의 진료를 기다리는 줄에 n마리의 동물이 있다. 동물이 진료실에 들어오면 의사는 그 동물을 진찰하고, 처방전을 주고, 검사를 지시하며, 추가 진찰을 지시할 수도 있다. 의사는 숲의 모든 동물을 아주 잘 알고 있으므로, 줄에서 번호가 i인 동물이 진료실을 정확히 ai번 방문해야 한다는 것을 정확히 알고 있다. 진찰은 검사와 그 밖의 추가 절차보다 훨씬 오래 걸린다고 가정하며, 따라서 동물이 진료실을 나서면 즉시 진료 대기 줄의 맨 뒤로 간다고 가정한다. 물론 동물이 필요한 만큼 의사를 방문했다면 줄의 맨 뒤에 설 필요 없이 즉시 집으로 간다.
의사는 k마리의 동물을 진료한 뒤 집에 갈 계획이므로, 그 순간 줄이 어떤 모습일지가 중요하다. 의사는 오랜 시간 일하는 데다 결국 이런 일로 주의를 빼앗길 수 없으므로, 이를 알아내 달라고 여러분에게 부탁했다.
입력 데이터의 첫 번째 줄에는 공백으로 구분된 두 정수 n와 k가 주어진다 (1 ≤ n ≤ 105, 0 ≤ k ≤ 1014). 두 번째 줄에는 공백으로 구분된 정수 a1, a2, ..., an (1 ≤ ai ≤ 109)이 주어진다.
C++에서 64비트 수를 읽거나 쓸 때 %lld 지정자를 사용하지 말라. cin, cout 스트림을 사용하는 것을 권장한다(%I64d 지정자를 사용할 수도 있다).
의사가 전체적으로 수행할 진찰 횟수가 k보다 적다면, 숫자 하나인 "-1"을 따옴표 없이 출력한다. 그렇지 않다면 동물들이 줄에 서 있는 순서대로 동물 번호의 수열을 출력한다.
이 수열은 비어 있을 수도 있음에 유의하라. 이 경우는 사전 테스트에 포함되어 있다. 아무것도 출력하지 않거나 "End of line" 문자 하나를 출력하면 된다. 둘 다 정답으로 인정된다.
7 10
1 3 3 1 2 3 1
6 2 3
3 3
1 2 1
2
4 10
3 3 2 1
-1
첫 번째 예제 테스트에서는 다음과 같다.
두 번째 예제 테스트에서는 다음과 같다.