Codeforces Global Round 6

Posted aslhzxy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Global Round 6相关的知识,希望对你有一定的参考价值。

借了钱,然后合并,问合并完最少还有几个人之间有金钱纠纷
借的钱和欠的钱总数相等,直接O(n)的把每个人的钱都合并了,只管这个人欠了多少钱,不管欠的谁钱

struct node{
    int x,y;
    ll z;

};
ll sum[MAXN];
void work() {
    vector<int> v1,v2;
    int n,m;
    cin >> n >> m;
    for(int i = 1; i <= m; i++) {
        int x,y;ll z;
        cin >> x >> y >> z;
        sum[x] -= z; sum[y] += z;
    }
    for(int i = 1; i <= n; i++) {
        if(sum[i] < 0) {
            v1.push_back(i);
            sum[i] = -sum[i];
        }
        else if(sum[i] > 0) v2.push_back(i);
    }
    vector<node>ans;
    int i = 0,j = 0;
    while(i < v1.size() && j < v2.size()) {
        int u = v1[i];
        int v = v2[j];
        node k;
        k.x = u;
        k.y = v;
        k.z = min(sum[u],sum[v]);
        ans.push_back(k);
        ll tmp = min(sum[u],sum[v]);
        sum[u] -= tmp;
        sum[v] -= tmp;
        if(sum[u] == 0) i++;
        if(sum[v] == 0) j++;
    }
    cout << ans.size() << endl;
    for(int i = 0; i < ans.size(); i++) {
        cout << ans[i].x << ' ' << ans[i].y << ' ' << ans[i].z << endl;
    }
}

int main() {
    work();
    return 0;
}

偷偷说李涵学长是个夯货

以上是关于Codeforces Global Round 6的主要内容,如果未能解决你的问题,请参考以下文章

手抖康复训练1 Codeforces Global Round 6

Codeforces Global Round 8

Codeforces Global Round 19

Codeforces Global Round 7 D2. Prefix-Suffix Palindrome (Hard version) -- manacher

Codeforces Global Round 19

Codeforces Global Round 7