Firma posiada $n$ serwerów, ponumerowanych od $1$ do $n$. $i$-ty serwer uruchamia $a_i$ usług.
Czasami serwery mogą się wyłączać, dlatego dla każdego serwera zdefiniowano serwer zapasowy. Dla serwera o numerze $i$ serwerem zapasowym jest serwer o numerze $p_i$. Jeśli dla $i$-tego serwera $p_i = i$, to jest to serwer o wysokiej niezawodności i nigdy się nie wyłącza.
Dla dowolnych dwóch różnych serwerów $i$ i $j$ ich numery serwerów zapasowych $p_i$ i $p_j$ są różne. Zatem $p$ jest permutacją długości $n$, co oznacza, że każda liczba od $1$ do $n$ występuje dokładnie raz wśród wartości $p_1, \dots, p_n$.
Proces wyłączania serwerów przebiega następująco: jeśli serwer $i$ się wyłącza, wszystkie uruchomione na nim usługi są przenoszone na serwer o numerze $p_i$, a serwer $i$ jest zastępowany nowym serwerem, na którym nie są uruchomione żadne usługi. Numer tego serwera oraz numer jego serwera zapasowego pozostają bez zmian. Przenoszenie usług i wymiana serwera to bardzo szybki proces, podczas którego nie mogą wystąpić żadne nowe wyłączenia.
Firma planuje przeprowadzić test wydajności systemu. W tym celu zostanie wyłączonych co najwyżej $k$ serwerów. Wyłączenia są wykonywane sekwencyjnie, co oznacza, że żadne dwa serwery nie są wyłączane jednocześnie. Określ maksymalną liczbę usług, które mogą znaleźć się na jednym serwerze po wyłączeniu co najwyżej $k$ serwerów.
Wejście
Pierwszy wiersz zawiera dwie liczby całkowite $n$ i $k$ ($1 \leqslant k < n \leqslant 10^5$) — liczbę serwerów oraz maksymalną liczbę serwerów, które mogą zostać wyłączone.
Drugi wiersz zawiera $n$ liczb całkowitych $a_1, a_2, \dots, a_n$ ($0 \leqslant a_i \leqslant 10^9$) — liczby usług uruchomionych na serwerach.
Trzeci wiersz zawiera $n$ liczb całkowitych $p_1, p_2, \dots, p_n$ ($1 \leqslant p_i \leqslant n$) — numery serwerów zapasowych.
Wyjście
Wypisz jedną liczbę całkowitą — odpowiedź do zadania.
Podzadania
| Podzadanie | Punkty | Ograniczenia | Wymagane podzadania |
|---|---|---|---|
| 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 |
Przykład
Wejście 1
4 2 6 10 7 9 2 3 4 1
Wyjście 1
26
Wejście 2
3 1 1000000000 993 2010 1 3 2
Wyjście 2
1000000000
Wejście 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
Wyjście 3
23
Uwagi
Rozważmy kolejność wyłączania serwerów, która pozwala osiągnąć maksymalną odpowiedź w pierwszym przykładzie.
Przypomnijmy, jak odbywa się przenoszenie usług przy wyłączaniu serwerów:
| Serwer | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| Zapasowy | 2 | 3 | 4 | 1 |
Najpierw wyłącza się drugi serwer; jego usługi przenoszą się na trzeci serwer, więc teraz na trzecim serwerze jest $10 + 7 = 17$ usług.
Następnie wyłącza się trzeci serwer; jego usługi przenoszą się na czwarty serwer, po czym na czwartym serwerze jest $9 + 17 = 26$ usług.
Dla lepszego zrozumienia zobacz poniższą tabelę, która przedstawia liczbę usług na każdym serwerze podczas opisanego powyżej procesu.
| Etap | $a_1$ | $a_2$ | $a_3$ | $a_4$ |
|---|---|---|---|---|
| Przed pierwszym wyłączeniem | 6 | 10 | 7 | 9 |
| Po wyłączeniu serwera 2 | 6 | 0 | 17 | 9 |
| Po wyłączeniu serwera 3 | 6 | 0 | 0 | 26 |
Gdyby najpierw wyłączył się trzeci serwer, a potem drugi, proces wyglądałby następująco:
| Etap | $a_1$ | $a_2$ | $a_3$ | $a_4$ |
|---|---|---|---|---|
| Przed pierwszym wyłączeniem | 6 | 10 | 7 | 9 |
| Po wyłączeniu serwera 3 | 6 | 10 | 0 | 16 |
| Po wyłączeniu serwera 2 | 6 | 0 | 10 | 16 |
W tym przypadku maksymalna liczba usług na serwerze wynosiłaby 16, co nie jest optymalną odpowiedzią.
W drugim przykładzie jedną z możliwych opcji jest niewyłączanie żadnego serwera. Wtedy na pierwszym serwerze znajduje się $1000000000$ usług, co jest odpowiedzią do zadania. Jeśli wyłączony zostanie serwer 2 lub 3, maksymalna liczba usług również będzie na pierwszym serwerze.