骑士
题号:NC50515
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

Z国的骑士团是一个很有势力的组织,帮会中聚集了来自各地的精英。他们劫富济贫,惩恶扬善,受到了社会各界的赞扬。
可是,最近发生了一件很可怕的事情:邪恶的Y国发起了一场针对Z国的侵略战争。战火绵延五百里,在和平环境中安逸了数百年的Z国又怎能抵挡得住Y国的军队。于是人们把所有希望都寄托在了骑士团身上,就像期待有一个真龙天子的降生,带领正义打败邪恶。
骑士团是肯定具备打败邪恶势力的能力的,但是骑士们互相之间往往有一些矛盾。每个骑士有且仅有一个他自己最厌恶的骑士(当然不是他自己),他是绝对不会与最厌恶的人一同出征的。
战火绵延,人们生灵涂炭,组织起一个骑士军团加入战斗刻不容缓!国王交给你了一个艰巨的任务:从所有骑士中选出一个骑士军团,使得军内没有矛盾的两人,即不存在一个骑士与他最痛恨的人一同被选入骑士团的情况,并且使这支骑士军团最富有战斗力。
为描述战斗力,我们将骑士按照1至N编号,给每位骑士估计一个战斗力,一个军团的战斗力为所有骑士的战斗力之和。

输入描述:

输入第一行包含一个正整数N,描述骑士团的人数;
接下来N行每行两个正整数,按顺序描述每一名骑士的战斗力和他最痛恨的骑士。

输出描述:

输出包含一行,一个整数,表示你所选出的骑士军团的战斗力。
示例1

输入

复制
3
10 2
20 3
30 1

输出

复制
30

备注:

对于的数据,满足
对于的数据,满足
对于的数据,满足
对于的数据,满足,且每名骑士的战斗力都是不大于的正整数。