In this HackerEarth Minimum transactions problem solution 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.


HackerEarth Minimum transactions problem solution


HackerEarth Minimum transactions problem solution.

#include<bits/stdc++.h>
using namespace std;
const int N = 100005;
int n, m;
long long tot, A[N];
int main()
{
    scanf("%d%d", &n, &m);
    for (; m; m --)
    {
        int v, u, w;
        scanf("%d%d%d", &v, &u, &w);
        A[v] += w; A[u] -= w;
    }
    for (int i = 1; i <= n; i++)
        if (A[i] > 0)
            tot += A[i];
    return !printf("%lld\n", tot);
}