问题 A: Evensgn 的债务
大致题意:a欠b5元,b欠c5元,那么最小债务总额为a欠c5元,给你关系,求最小债务总额!
不想说话。。。一句超级大水题,我居然没读懂!!差点想到网络流了...其实是真的想到了( ⊙ o ⊙ )啊!
正式爆炸!一道三十行的代码....
题解不多说,一句话即可,对于每一个人来说:要么欠别人钱,要么被欠,如果两个都存在的话就一定!!不是最优解
语毕~含泪祝福。。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 int read(){ 7 int sum=0;char ch=getchar(); 8 while(ch<'0'||ch>'9') ch=getchar(); 9 while(ch>='0'&&ch<='9'){sum=sum*10+ch-'0';ch=getchar();} 10 return sum; 11 } 12 int n,m; 13 int sum1[1000002],sum2[1000002]; 14 int main(){ 15 n=read();m=read(); 16 for(int i=1;i<=m;++i){ 17 int x=read(),y=read(),z=read(); 18 sum1[x]+=z;sum2[y]+=z; 19 } 20 int sum=0; 21 for(int i=1;i<=n;++i) 22 sum+=abs(sum1[i]-sum2[i]); 23 printf("%d ",sum/2); 24 return 0; 25 }