zoukankan      html  css  js  c++  java
  • Codeforces Global Round 6D(VECTOR<ARRAY<INT,3> >)

    一个人只要存在债务关系,那么他的债务可以和这整个债务关系网中任何人连边,和他当初借出或欠下的人没有关系。只需要记录他的债务值即可。

     1 #define HAVE_STRUCT_TIMESPEC
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 long long val[100007];
     5 vector<array<long long,3> >v;
     6 int main(){
     7     ios::sync_with_stdio(false);
     8     cin.tie(NULL);
     9     cout.tie(NULL);
    10     long long n;
    11     cin>>n;
    12     long long m;
    13     cin>>m;
    14     for(long long i=1;i<=m;++i){
    15         long long a,b,c;
    16         cin>>a>>b>>c;
    17         val[a]-=c;
    18         val[b]+=c;
    19     }
    20     long long pos=1;
    21     for(long long i=1;i<=n;++i){
    22         while(val[i]>0){
    23             while(val[pos]>=0)
    24                 ++pos;
    25             long long mn=min(-val[pos],val[i]);
    26             val[i]-=mn;
    27             val[pos]+=mn;
    28             v.push_back({pos,i,mn});
    29         }
    30     }
    31     cout<<v.size()<<"
    ";
    32     for(auto it:v)
    33         cout<<it[0]<<" "<<it[1]<<" "<<it[2]<<"
    ";
    34     return 0;
    35 }
    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    arangodb安装
    ubuntu安装java方法
    设置代理
    自动机
    统计学习基本理论知识(一)
    条件随机场(四)
    条件随机场(三)
    hive安装
    GC root & 使用MAT分析java堆
    jinfo介绍
  • 原文地址:https://www.cnblogs.com/ldudxy/p/12073577.html
Copyright © 2011-2022 走看看