码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces Global Round 6

时间:2019-12-27 19:55:16      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:oid   return   end   void   直接   tor   code   ==   else   

借了钱,然后合并,问合并完最少还有几个人之间有金钱纠纷
借的钱和欠的钱总数相等,直接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

标签:oid   return   end   void   直接   tor   code   ==   else   

原文地址:https://www.cnblogs.com/ASLHZXY/p/12109053.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!