0 #27. 礼物

礼物

题目描述

BobBob所在学校有nn名同学,周末每位同学都想去好朋友家玩顺便送礼物,第ii位同学的好朋友是ai(1ainaii)a_i(1\le a_i \le n,a_i \ne i)

每位同学都准备了一份礼物送给好朋友,如果礼物能够在他好朋友还没有送出自己礼物之前送达,他觉得他送礼物很早,会特别开心,获得vi(0vi109)v_i(0\le v_i \le 10^9)的开心指数。

如果他的好朋友已经把礼物送出去了,他会不开心,也就是获得00的开心指数,此时他不会把礼物送出去

校长想知道所有同学的开心指数之和的最大值,但是他不知道如何安排送礼物顺序,会使得所有同学开心指数和最大,于是请BobBob帮忙,请帮助BobBob所有同学开心的最大值。

输入格式

第一行一个整数nn.

接下来nn行,第i+1i+1行,表示aia_iviv_i.

输出格式

一个整数,表示所有同学的最大开心指数。

4
2 10
3 20
4 30
1 40
90

样例解释

如果按照(1,4,3,2)(1,4,3,2)的顺序送礼物:

11号同学给a[1]=2a[1]=2送礼物,获得1010的开心指数;

44号同学给a[4]=1a[4]=1送礼物,由于11号同学的礼物已经送出,44号获得的开心指数为0044号同学不会把礼物送出去;

33号同学给a[3]=4a[3]=4送礼物,获得3030的开心指数;

22号同学给a[2]=3a[2]=3送礼物,由于33号同学的礼物已经送出,22号获得的开心指数为0022号同学不会把礼物送出去;

总共获得10+30=4010+30=40的开心指数。

如果按照(2,3,4,1)(2,3,4,1)的顺序送礼物:

22号同学给a[2]=3a[2]=3送礼物,获得2020的开心指数;

33号同学给a[3]=4a[3]=4送礼物,获得3030的开心指数;

44号同学给a[4]=1a[4]=1送礼物,获得4040的开心指数;

11号同学给a[1]=2a[1]=2送礼物,由于22号同学的礼物已经送出,11号获得的开心指数为0011号同学不会把礼物送出去;

最终,所有同学开心指数之和为20+30+40=9020+30+40=90,可以证明此时和最大。

10
2 20
3 40
4 50
2 60
4 30
7 40
8 30
6 50
7 10
9 20
280

样例3见文件

数据规模与约定

20%20\%的数据:对于任意iji \ne j aiaja_i \ne a_j

另外40%40\%的数据:n103n \le 10^3

100%100\%的数据:$2 \le n \le 10^5, 1 \le a_i \le n,a_i \ne i, 0\le v_i \le 10^9$