Minimum transactions

3.1

22 votes
Basic Programming, Basics of Implementation, Easy, Implementation
Problem

There are n people living in a neighborhood. When in debt, neighbors borrow money from each other to clear their debts. A neighbor has already borrowed money from another neighbor for m times to clear a debt. 

All the neighbors want to clear what they owe each other. Their plan is to clear their debts in such a way that the total number of transactions is minimized because the fee per transaction is very high. For example, if the ith person pays the jth person X dollars, then the amount of this particular transaction is X

You are required to minimize the sum of the transaction amount.

Input format

  • First line: Two integers n and m
  • Next m lines: Three integers vi, ui, and wi which means that the uthi person has lent the vthi person wi amount of dollars

Output format

Print only one integer that represents the minimum sum of the transaction amount.

Constraints

1n,m105

1vi,uin

1wi108

It is guaranteed that vi and ui are distinct.

Sample input

2 3
1 2 10
1 2 3
2 1 5

Sample output

8

Time Limit: 1
Memory Limit: 256
Source Limit:
Explanation

Note that any person can pay any other person any amount of money (not necessarily those who have lent money to each other before).

Editor Image

?