样例
//输入
5 5
2 2 2 2 2
1 2 1.5
2 1 1.5
1 2 1.5
2 1 1.5
1 2 1.5
//输出
2.00
备注
#include<bits/stdc++.h>
using namespace std;
struct account{
double count;//金额
double warn;//警戒值
}a[1001];
int main( )
{
int n,m;
cin>>n>>m;
double ans=0;
for(int i=1;i<=n;i++)
{
cin>>a[i].count;
a[i].warn=0;
}
int x,y;//转出账户、转入账户
double z;//转账金额
for(int i=0;i<m;i++)
{
cin>>x>>y>>z;
//判断金额是否足够
if(a[x].count<z)
break;
a[x].count-=z;//转出
a[y].count+=floor(z);//只有整数转入
ans+=z-floor(z);//被盗取的金额
a[y].warn+=z-floor(z);//转入账户的警戒值需要增加被盗窃的金额
if(a[y].warn>1)
break;
}
printf("%.2lf\n",ans);
return 0;
}