시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
원섭시에는 N명의 시민이 있다. 각 시민은 정확히 한 명의 다른 시민에게 돈을 빌렸다. 시민 i에 대해 A_i는 시민 i에게 돈을 빌려준 사람의 번호이고, B_i는 시민 i가 갚아야 하는 금액이다.
시는 모든 빚을 갚게 하고 싶지만, 현재 모든 시민은 돈을 하나도 가지고 있지 않다. 시는 일부 시민에게 돈을 줄 수 있다. 어떤 시민이 자신이 갚아야 할 금액 이상을 가지게 되면, 그 시민은 채권자에게 돈을 갚을 수 있다. 돈을 받은 채권자는 그 돈을 나중에 자신의 빚을 갚는 데 사용할 수 있다. 빚을 갚고 돈이 남으면 그 돈은 그 시민이 가진다.
모든 채무 관계가 주어졌을 때, 모든 빚을 결국 갚을 수 있도록 시가 시민들에게 주어야 하는 돈의 총합의 최솟값을 구하시오.
첫째 줄에 시민의 수 N (2 <= N <= 200,000)이 주어진다. 시민의 번호는 1번부터 N번까지이다.
다음 N개의 줄 중 i번째 줄에는 두 정수 A_i와 B_i가 주어진다. A_i는 시민 i에게 돈을 빌려준 사람의 번호이고, B_i는 시민 i가 갚아야 하는 금액이다 (1 <= A_i <= N, A_i != i, 1 <= B_i <= 10,000).
모든 시민의 빚을 해결하기 위해 필요한 돈의 총합의 최솟값을 출력한다.