USACO Greedy Gift Givers
阿新 • • 發佈:2021-12-01
給別人的錢是要均分的,沒有小數點,分不盡就給自己,注意的是,拿出去分的是自己的錢,所以 分的人的錢=分的人原本的錢-拿出來分的錢+分不盡的錢
/* ID: kdk5501 TASK : gift1 LANG : C++ */ #include <iostream> #include <fstream> #include <string> using namespace std; struct people { string name; int money; }person[110]; int main() { freopen("gift1.in","r",stdin); freopen("gift1.out","w",stdout); int n; cin>>n; for(int i=1;i<=n;i++) { cin>>person[i].name; person[i].money=0; } int m=n; for(int i=1;i<=n;i++) { string op; cin>>op; int sum,t,temp,add=0; cin>>sum>>t; if(t==0) { for(int i=1;i<=n;i++) { if(person[i].name==op) { person[i].money+=sum; break; } } continue; } temp=sum/t; for(int i=1;i<=t;i++) { string na; cin>>na; for(int i=1;i<=n;i++) { if(person[i].name==na) { person[i].money+=temp; break; } } } for(int i=1;i<=n;i++) { if(person[i].name==op) { person[i].money-=sum; person[i].money+=(sum-temp*t); } } } for(int i=1;i<=n;i++) { cout<<person[i].name<<" "<<person[i].money<<endl; } return 0; }
本文來自部落格園,作者:magicat,轉載請註明原文連結:https://www.cnblogs.com/magicat/p/15630795.html