아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

공과 상자 게임

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

요약
상자들이 순열대로 공을 담고 있고, 두 번의 라운드에서 상자를 여는 비용을 지불해 열린 상자 사이에서 공을 자유롭게 옮길 수 있을 때, 항등 배치를 만드는 최소 비용을 구한다.
난이도

어려움10점 중 8점

유형
그래프, 그리디, 동적 계획법, 정렬
정답자
아직 제출이 없습니다

문제

NN개의 상자와 NN개의 공이 있다. 다음과 같은 게임을 한다.

상자는 11부터 NN까지의 정수로, 공도 11부터 NN까지의 정수로 번호가 매겨진다. ii번 상자에는 처음에 PiP_i번 공이 들어 있다.

각 상자는 열려 있거나 닫혀 있다. 처음에는 모든 상자가 닫혀 있다.

이후 두 번의 공 이동 라운드가 진행된다. 각 라운드에서 다음을 수행한다.

  1. 상자를 0개 이상 골라 연다. 첫 번째 라운드에서 ii번 상자를 열려면 AiA_i개의 동전을, 두 번째 라운드에서 ii번 상자를 열려면 BiB_i개의 동전을 낸다.
  2. 열린 상자 사이에서 공을 자유롭게 옮긴다. 단, 이동이 끝났을 때 각 상자에는 정확히 하나의 공이 들어 있어야 한다.
  3. 열린 상자를 모두 닫는다.

두 라운드가 끝난 뒤 각 ii에 대해 ii번 상자에 ii번 공이 들어 있어야 한다. 게임을 끝내기 위해 내야 하는 동전 합의 최솟값을 구한다.

입력

첫 번째 줄에 정수 NN이 주어진다. (1≤N≤1051 \le N \le 10^5)

두 번째 줄에 NN개의 정수 P1,P2,…,PNP_1, P_2, \ldots, P_N이 주어진다. PiP_i는 ii번 상자에 처음 들어 있던 공의 번호다. (1≤Pi≤N1 \le P_i \le N, i≠ji \ne j이면 Pi≠PjP_i \ne P_j)

세 번째 줄에 NN개의 정수 A1,A2,…,ANA_1, A_2, \ldots, A_N이 주어진다. AiA_i는 첫 번째 라운드에서 ii번 상자를 여는 데 드는 비용이다. (1≤Ai≤1091 \le A_i \le 10^9)

네 번째 줄에 NN개의 정수 B1,B2,…,BNB_1, B_2, \ldots, B_N이 주어진다. BiB_i는 두 번째 라운드에서 ii번 상자를 여는 데 드는 비용이다. (1≤Bi≤1091 \le B_i \le 10^9)

출력

두 라운드가 끝난 뒤 각 ii에 대해 ii번 상자에 ii번 공이 들어 있도록 하기 위해 내야 하는 동전 합의 최솟값을 정수 하나로 출력한다.

예제2

  1. 예제 1

    입력
    5
    5 3 2 1 4
    3 8 3 5 11
    9 3 7 6 4
    
    예상 출력
    28
    
  2. 예제 2

    입력
    1
    1
    1000000000
    1000000000
    
    예상 출력
    0