TRẢ NỢ

Ở 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.

debt

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:

  • Dòng đầu tiên chứa số nguyên ~n~,
  • Dòng thứ ~i~ trong ~n~ dòng sau chứa 2 số nguyên ~a_i~ và ~b_i~.

Kết quả:

  • Ghi một số nguyên cho biết số tiền nhỏ nhất chính quyền cần hổ trợ.

**Ví dụ: **

Input:

3
2 120
3 50
2 80 

Output:

150 

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. ilpnvm (22/33)
  2. puan011108 (9/14)
  3. nguyenvuquang (9/15)
Trong 7 ngày
  1. puan011108 (142/182)
  2. binnee (135/205)
  3. hienpham (134/176)
Trong 30 ngày
  1. ducchinh (170/226)
  2. hienpham (163/213)
  3. bichngoc (156/221)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 37724

Lưu Hải Phong - 2020
[email protected]