만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

방문

면접 대비

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

요약
각 친구 i는 a_i의 농장을 방문할 때 v_i번 음매 소리를 냅니다. 방문 순서를 정해 얻을 수 있는 음매 소리 총합의 최댓값을 구합니다.
난이도

보통10점 중 5점

유형
그래프, 구현
정답자
아직 제출이 없습니다

문제

Bessie의 소 NN마리(2≤N≤1052\le N\le 10^5)에게는 1…N1\ldots N번의 번호가 붙어 있고, 각자 자기 농장을 가지고 있다. 각 1≤i≤N1\le i\le N에 대해 소 ii는 소 aia_i를 방문하려 한다(ai≠ia_i\neq i).

1…N1\ldots N의 순열 (p1,p2,…,pN)(p_1,p_2,\ldots,p_N)이 주어지면 방문은 다음과 같이 진행된다.

ii를 11부터 NN까지 차례로 본다.

  • 소 apia_{p_i}가 이미 농장을 떠났다면 소 pip_i는 자기 농장에 남는다.
  • 그렇지 않다면 소 pip_i는 농장을 떠나 소 apia_{p_i}의 농장을 방문한다. 이 방문으로 기쁜 울음소리 "moo"가 vpiv_{p_i}번 울린다(0≤vpi≤1090\le v_{p_i}\le 10^9).

모든 방문이 끝난 뒤 울린 "moo"의 최대 개수를 구하라. 가능한 모든 순열 pp에 대한 최댓값이다.

입력

첫 줄에 NN이 주어진다.

각 1≤i≤N1\le i\le N에 대해 (i+1)(i+1)번째 줄에 공백으로 구분된 정수 aia_i와 viv_i가 주어진다.

출력

답을 나타내는 정수 하나를 출력한다.

값이 커질 수 있으므로 64비트 정수형(C/C++의 "long long" 등)이 필요할 수 있다.

힌트

p=(1,4,3,2)p=(1,4,3,2)이면 다음과 같다.

  • 소 11이 소 22의 농장을 방문해 "moo"가 1010번 울린다.
  • 소 44는 소 11이 이미 떠난 것을 보고 아무 일도 없다.
  • 소 33이 소 44의 농장을 방문해 3030번 울린다.
  • 소 22는 소 33이 이미 떠난 것을 보고 아무 일도 없다.

총 10+30=4010+30=40번이다.

p=(2,3,4,1)p=(2,3,4,1)이면 다음과 같다.

  • 소 22가 소 33의 농장을 방문해 2020번 울린다.
  • 소 33이 소 44의 농장을 방문해 3030번 울린다.
  • 소 44가 소 11의 농장을 방문해 4040번 울린다.
  • 소 11은 소 22가 이미 떠난 것을 보고 아무 일도 없다.

총 20+30+40=9020+30+40=90번이다. 이것이 모든 순열 pp에 대한 최댓값이다.

예제1

  1. 예제 1

    입력
    4
    2 10
    3 20
    4 30
    1 40
    
    예상 출력
    90