문제
정올이는 당구장에서 놀고 있다. 당구장은 테이블 위에 놓인
공을 떨어뜨리는 것은 집중력을 요구하는 작업이다. 처음에 정올이의 집중력은
또한 이 당구장에는 공을 떨어뜨리는 순서에 관한 규칙이 있다. 구체적으로,
정올이가 가진 집중력과 각 공에 대한 정보가 주어졌을 때, 정올이가 공을 구멍에 떨어뜨릴 수 있는지 판단하고, 공을 떨어뜨릴 수 있다면 떨어뜨릴 수 있는 공의 번호 중 최대값을 구하는 프로그램을 작성하시오.
입력
입력은 다음과 같은 형식으로 주어진다.
[제약 조건]
1 \le N \le 200,000 1 \le X \le 10^{15} 1 \le A_i \le 10^9 (1 \le i \le N )1 \le P_i \le N 또는P_i=-1 (1 \le i \le N )P_i ≠ i (1 \le i \le N )모든 입력은 정수이다.
출력
정올이가 구멍에 떨어뜨릴 수 있는 공의 번호 중 최대값을 한 줄로 출력하시오.
단, 정올이가 한 개의 공도 떨어뜨릴 수 없는 경우에는 대신 -1
을 출력하시오.
부분문제
번호 | 점수 | 조건 |
---|---|---|
#1 | 6점 | |
#2 | 9점 | |
#3 | 16점 | |
#4 | 20점 | |
#5 | 19점 | |
#6 | 30점 | 추가 제약 조건 없음 |
예제1
67
1 2 4 3 10 100
-1 -1 -1 -1 -1 -1
4
정올이의 초기 집중력은
예를 들어, 아래와 같은 방법으로 정올이는 공 4를 떨어뜨릴 수 있습니다.
먼저 공 3을 구멍에 떨어뜨립니다. 이때 정올이의 집중력은 4만큼 감소하고, 남은 집중력은 3이 됩니다.
그다음 공 4를 구멍에 떨어뜨립니다. 이때 정올이의 집중력은 3만큼 감소하고, 남은 집중력은 0이 됩니다.
공 5와 6은 이제 떨어뜨릴 수 없습니다.
따라서 정올이가 구멍에 떨어뜨릴 수 있는 공의 번호 중 가장 큰 값은 4입니다
예제2
512
1 2 3 5 8
-1 1 2 3 4
4
정올이의 초기 집중력은 12입니다. 아래와 같은 방식으로 정올이는 공 4를 구멍에 떨어뜨릴 수 있습니다:
공 1을 구멍에 떨어뜨립니다. (P_1 = -1이므로, 공 1은 언제든지 떨어뜨릴 수 있습니다.)
정올이의 집중력은 1만큼 감소하고, 남은 집중력은 11이 됩니다.
공 2를 구멍에 떨어뜨립니다. (P_2 = 1이므로, 공 1이 이미 떨어졌으므로 공 2를 떨어뜨릴 수 있습니다.)
정올이의 집중력은 2만큼 감소하고, 남은 집중력은 9가 됩니다.
공 3을 구멍에 떨어뜨립니다. (P_3 = 2이므로, 공 2가 이미 떨어졌으므로 공 3을 떨어뜨릴 수 있습니다.)
정올이의 집중력은 3만큼 감소하고, 남은 집중력은 6이 됩니다.
공 4를 구멍에 떨어뜨립니다. (P_4 = 3이므로, 공 3이 이미 떨어졌으므로 공 4를 떨어뜨릴 수 있습니다.)
정올이의 집중력은 5만큼 감소하고, 남은 집중력은 1이 됩니다.
이후 공 5를 떨어뜨릴 수 없습니다. (남은 집중력 1로는 공 5를 떨어뜨릴 수 없습니다.)
따라서 정올이가 구멍에 떨어뜨릴 수 있는 공 중 가장 큰 번호는 4입니다.
이 예시는 주어진 문제의 제약을 모두 만족하는 예시입니다.
예제3
810
3 1 4 1 5 9 2 6
-1 1 2 -1 4 4 5 7
7
예제4
21000000000000000
1 1
2 1
-1
예제5
92468024680
123456789 234567891 345678912 456789123 567891234 678912345 789123456 891234567 912345678
6 5 4 -1 3 2 1 9 8
6