标签:包含 else reg fine put col 排序 output http
输入第一行包含两个正整数N和M,分别表示图G的节点数和边数,保证N一定是偶数。
接下来N+M行。
前N行,每行一个整数w,其中第k行为节点k的权值。
后M行,每行三个用空格隔开的整数a b c,表示一条连接节点a和节点b的边,权值为c。
输出仅包含一个整数,为桃子的得分减去阿狸的得分。
1 #include <bits/stdc++.h> 2 #define il inline 3 #define RG register 4 #define ll long long 5 #define N (500010) 6 7 using namespace std; 8 9 int w[100010],n,m,ans; 10 11 il int gi(){ 12 RG int x=0,q=1; RG char ch=getchar(); 13 while ((ch<‘0‘ || ch>‘9‘) && ch!=‘-‘) ch=getchar(); 14 if (ch==‘-‘) q=-1,ch=getchar(); 15 while (ch>=‘0‘ && ch<=‘9‘) x=x*10+ch-48,ch=getchar(); 16 return q*x; 17 } 18 19 int main(){ 20 #ifndef ONLINE_JUDGE 21 freopen("game.in","r",stdin); 22 freopen("game.out","w",stdout); 23 #endif 24 n=gi(),m=gi(); 25 for (RG int i=1;i<=n;++i) w[i]=gi()<<1; 26 for (RG int i=1,u,v,c;i<=m;++i) 27 u=gi(),v=gi(),c=gi(),w[u]+=c,w[v]+=c; 28 sort(w+1,w+n+1); 29 for (RG int i=n;i;--i) 30 if ((i&1)^(n&1)) ans-=w[i]; else ans+=w[i]; 31 printf("%d\n",ans>>1); return 0; 32 }
标签:包含 else reg fine put col 排序 output http
原文地址:http://www.cnblogs.com/wfj2048/p/7470090.html