输入案例:
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
题目关键:
仔细读题目要求,转出账户被盗取z,转入账户转入z的整数部分,盗取者赚Z的小数部分的蝇头小利。且先转账,后警戒值增加。注意可以继续转出的判断条件
代码:
#include<bits/stdc++.h> using namespace std;
int main(){int n,m;cin>>n>>m;float a[n];//银行账户float b[n]={0};//警戒值for(int i=0;i<n;i++){cin>>a[i];}float sum=0;//盗窃者的盗窃值int x,y;float z;for(int i=0;i<m;i++){cin>>x>>y>>z;if(z>a[x-1]){break;}a[x-1]-=z;a[y-1]+=int(z);sum+=(z-int(z));b[y-1]=b[y-1]+z-int(z); if(b[y-1]>1)break;}cout<<fixed<<setprecision(2)<<sum<<endl;return 0;
}