한 회사에는 $1$부터 $n$까지 번호가 매겨진 $n$개의 서버가 있습니다. $i$번째 서버는 $a_i$개의 서비스를 실행합니다.
때때로 서버가 종료될 수 있으므로 각 서버에 대해 백업 서버가 정의되어 있습니다. 번호가 $i$인 서버의 백업은 번호가 $p_i$인 서버입니다. $i$번째 서버에 대해 $p_i = i$이면, 이는 고신뢰성 서버이며 절대 종료되지 않습니다.
서로 다른 두 서버 $i$와 $j$에 대해, 그들의 백업 서버 번호 $p_i$와 $p_j$는 서로 다릅니다. 따라서 $p$는 길이 $n$의 순열이며, $1$부터 $n$까지의 각 번호가 $p_1, \dots, p_n$ 값들 사이에 정확히 한 번씩 나타납니다.
서버 종료 과정은 다음과 같이 진행됩니다: 서버 $i$가 종료되면, 그 서버에서 실행 중인 모든 서비스는 번호 $p_i$인 서버로 이동하고, 서버 $i$는 어떤 서비스도 실행하지 않는 새 서버로 교체됩니다. 이 서버의 번호와 백업 서버의 번호는 변경되지 않습니다. 서비스의 이동과 서버의 교체는 매우 빠른 과정이며, 그 동안 새로운 종료가 발생할 수 없습니다.
회사는 시스템 성능 테스트를 실시할 계획입니다. 이를 위해 최대 $k$개의 서버가 종료될 것입니다. 종료는 순차적으로 수행되며, 즉 두 서버가 동시에 종료되지는 않습니다. 최대 $k$개의 서버를 종료한 후 하나의 서버에 모일 수 있는 서비스의 최대 개수를 구하십시오.
입력
첫 번째 줄에는 두 정수 $n$과 $k$ ($1 \leqslant k < n \leqslant 10^5$)가 주어집니다. 이는 서버의 개수와 종료할 수 있는 서버의 최대 개수입니다.
두 번째 줄에는 $n$개의 정수 $a_1, a_2, \dots, a_n$ ($0 \leqslant a_i \leqslant 10^9$)이 주어집니다. 이는 서버에서 실행 중인 서비스의 개수입니다.
세 번째 줄에는 $n$개의 정수 $p_1, p_2, \dots, p_n$ ($1 \leqslant p_i \leqslant n$)이 주어집니다. 이는 백업 서버의 번호입니다.
출력
하나의 정수, 즉 문제의 답을 출력합니다.
서브태스크
| 서브태스크 | 배점 | 제약 조건 | 필요 서브태스크 |
|---|---|---|---|
| 1 | 15 | $n \leqslant 1000, k = 1$ | — |
| 2 | 27 | $n \leqslant 1000$ | 1 |
| 3 | 21 | $p_i = i \pmod n + 1$ | — |
| 4 | 37 | — | 1, 2, 3 |
예제
입력 1
4 2 6 10 7 9 2 3 4 1
출력 1
26
입력 2
3 1 1000000000 993 2010 1 3 2
출력 2
1000000000
입력 3
11 5 3 5 12 7 5 9 2 6 0 9 4 2 8 9 6 5 11 3 1 10 7 4
출력 3
23
참고
첫 번째 예제에서 최대 답을 얻을 수 있는 서버 종료 순서를 생각해 보십시오.
서버가 종료될 때 서비스 이동이 어떻게 수행되는지 상기해 보십시오:
| 서버 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| 백업 | 2 | 3 | 4 | 1 |
먼저 두 번째 서버가 종료됩니다. 그 서비스는 세 번째 서버로 이동하므로, 이제 세 번째 서버에는 $10 + 7 = 17$개의 서비스가 있습니다.
두 번째로 세 번째 서버가 종료됩니다. 그 서비스는 네 번째 서버로 이동하며, 이후 네 번째 서버에는 $9 + 17 = 26$개의 서비스가 있습니다.
더 나은 이해를 위해, 위에서 설명한 과정 동안 각 서버의 서비스 개수를 기록한 아래 표를 참고하십시오.
| 단계 | $a_1$ | $a_2$ | $a_3$ | $a_4$ |
|---|---|---|---|---|
| 첫 번째 종료 전 | 6 | 10 | 7 | 9 |
| 서버 2 종료 후 | 6 | 0 | 17 | 9 |
| 서버 3 종료 후 | 6 | 0 | 0 | 26 |
만약 세 번째 서버가 먼저 종료되고 두 번째 서버가 두 번째로 종료되었다면, 과정은 다음과 같습니다:
| 단계 | $a_1$ | $a_2$ | $a_3$ | $a_4$ |
|---|---|---|---|---|
| 첫 번째 종료 전 | 6 | 10 | 7 | 9 |
| 서버 3 종료 후 | 6 | 10 | 0 | 16 |
| 서버 2 종료 후 | 6 | 0 | 10 | 16 |
이 경우 한 서버의 최대 서비스 개수는 16이므로, 최적의 답이 아닙니다.
두 번째 예제에서 가능한 옵션 중 하나는 서버를 종료하지 않는 것입니다. 그러면 첫 번째 서버에 $1000000000$개의 서비스가 있으며, 이것이 문제의 답입니다. 서버 2나 서버 3이 종료되더라도 최대 서비스 개수는 여전히 첫 번째 서버에 있습니다.