/*
* fudq.cpp
*
* Created on: 2013-08-07
* Author: fudq
*/
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <queue>
#include <set>
#include <map>
#include <stack>
#include <string>
#include <vector>
#include <deque>
#include <list>
#include <functional>
#include <numeric>
#include <cctype>
using namespace std;
#define FOR(i,a) for((i)=0;i<(a);(i)++)
#define MEM(a) (memset((a),0,sizeof(a)))
#define LL __int64
const int N=100010;
const int M=1000010;
const int MOD=1000000007ll;
const int INF=0x7fffffff;
const double eps=1e-7;
const double PI=acos(-1.0);
double f[N];
bool cmp(double a,double b)
{
if(a>b)
return true;
return false;
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("testin.txt","r",stdin);
// freopen("testout.txt","w",stdout);
#endif
int n,m,a,b;
double c;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(int i=1;i<=n;i++)
scanf("%lf",&f[i]);
for(int i=0;i<m;i++)
{
scanf("%d%d%lf",&a,&b,&c);
f[a]+=c/2;
f[b]+=c/2;
}
sort(f+1,f+n+1,cmp);
double ans=0;
for(int i=1;i<=n;i+=2)
{
if(i+1 <= n)
ans+=(f[i]-f[i+1]);
else
ans+=f[i];
}
printf("%.0lf\n",ans);//为防止精度损失,不能写成printf("%d\n",(int)ans);,前者是四舍五入,后者是去尾
}
return 0;
}
评论