페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#4564

통신비용 1s 256MB

문제

GS국은 수원시에 떠있는 작은 산나라이다.

GS국에는 N개의 섬이 있고, 1부터 N까지의 번호가 붙어 있다.

 

GS국은 섬끼리 주로 무선통신을 한다.

각 섬에는 전파의 발신기와 수신기가 하나씩 있다.

발신기는 모든 방향으로 전파를 발신하는 것이 가능하지만, 수신기는 특정 방향에서 오는 전파밖에 받지 못한다.

다시 말해, 수신기는 특정 하나의 섬에서만 전파를 수신할 수 있다.

단, 수신기의 방향을 바꾸는 것으로, 어느 섬에서 전파를 수신할 것인지 바꿀 수는 있다.

 

GS국에서는 공공사업으로 전보 서비스를 한다.

섬 i(1 ≤​ i ≤​ N)에서 전파를 섬 j(1 ≤​ j ≤​ N, j ≠ i)의 수신기가 받는 것이 가능할 때, 

섬 i에서 섬 j로 전보를 보내는 것이 가능하다.

또한, 전보는 몇 개의 섬을 경유할 수 있다.

즉, 섬 i, 섬 j, 섬 k에 대해, 섬 i에서 섬 j에 전보를 보낼 수 있고, 

섬 j에서 섬 k에 전보를 보낼 수 있으면, 섬 i에서 섬 k에 전보를 보낼 수도 있다.

 

GS국의 통신장관인 준혁이는 임의의 섬에서 임의의 섬으로 전보를 보낼 수 있도록 하고 싶다.

그러기 위해서는 몇 개의 섬의 수신기의 방향을 바꿔야 할 수도 있다.

몇개의 섬의 수신기의 방향을 바꾸는 데 드는 비용은, 

각각의 수신기의 방향을 바꾸는 데 사용하는 비용의 총합이다.

 

여러분이 불쌍한 준혁이를 도와, GS국의 섬의 수와 각각의 섬의 수신기에 대한 정보가 주어졌을 때, 

임의의 섬에서 임의의 섬으로 전보를 보낼 수 있도록 하기 위해 드는 비용의 최소치를 구해주자.


입력

첫 번째 줄에는 GS국의 섬의 수를 뜻하는 N이 주어진다. (2 ≤​ N ≤​ 100,000)

다음 N개의 줄의 i번째 줄(1 ≤​ i ≤​ N)에는 정수 Ai, Ci가 공백으로 구분되어 주어진다. 

이는 섬 i의 수신기는 현재 섬 Ai에서 전파를 수신할 수 있고, 

방향을 바꾸는 데 비용 Ci가 든다는 것을 의미한다. 

(1 ≤​ Ai ≠ i ≤​ N, 1 ≤​ Ci ≤​ 1,000,000,000)


출력

첫째 줄에 임의의 섬에서 임의의 섬으로 전보를 보낼 수 있게 하기 위한 비용의 최솟값을 출력하여라. 


부분문제

번호 점수 조건
#129점

N <= 10

#222점

N <= 15

#325점

N <= 3,000

#424점

N <= 100,000


예제 #1

4

2 2
1 4
1 3
3 1
4

예제 #2

3

2 1
3 1
1 1
0


출처

20201031 집중강화학습3차5번,dennisstar,JOI SC 2016 Day 3 2번
로그인해야 코드를 작성할 수 있어요.