Ở một thị trấn nhỏ có ~n~ người sống, đánh số từ 1 đến ~n~. Mỗi người vay đúng một người khác một khoản tiền. Năm hết tết đến, mọi người tìm cách thanh toán hết nợ nần để năm mới gặp may mắn. Đáng tiếc là không ai có đủ tiền mặt để trả nợ.
Chính quyền thành phố quyết định hỗ trợ cho một số người vay một ít tiền. Những người này sẽ trả được nợ của mình và tạo phản ứng dây chuyền: ~A~ trả cho ~B~, ~B~ trả cho ~C~, . . . Nếu người ~B~ chưa đủ trả cho ~C~ thì phải chờ đợi bao giờ có đủ mới trả. Nếu sau khi trả nợ vẫn còn thừa tiền thì ~B~ sẽ giữ lại số tiền thừa.
Chinh quyền không muốn chi quá nhiều tiền. Thị trưởng yêu cầu tính toán số tiền nhỏ nhất cần hổ trợ để mọi người thanh toán hết nợ của mình. Ví dụ, với n = 3, người 1 nợ người 2 số tiền là 120, người 2 nợ người 3 số tiền là 50, số tiền người 3 phải trả cho người 2 là 80. Khi đó chính quyền chỉ cần cho người một vay 120, người 3 – 30, mọi món nợ trong dân chúng sẽ được giải quyết. Như vậy chính quyền phải chi tổng cộng là 150.
Yêu cầu: Cho ~n,a_i,b_i~ ~(2 ≤ n ≤ 200000,1 ≤ b_i≤10 000,1 ≤ a_i ≤ n,i = 1 ÷ n)~, trong đó ~a_i~ là chủ nợ của người ~i~ và số tiền người ~i~ phải trả là ~b_i~ ~(a_i ≠ i)~. Hãy xác định số tiền nhỏ nhất chính quyền cần hỗ trợ.
Dữ liệu vào:
Kết quả:
**Ví dụ: **
Input:
3
2 120
3 50
2 80
Output:
150
Code tích cực |
---|
Trong 24h |
|
Trong 7 ngày |
|
Trong 30 ngày |
Thống kê |
---|
AC/Sub: 97887/180710 Pascal: 17121 C++: 130348 Python: 33199 Lượt xem/tải tests: 37724 |