又开始做USACO?
反正很水,但是很绕。注意送人剩下的钱不能算得到的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| #include<bits/stdc++.h> using namespace std;
const int MAXN=15;
struct mem{ string name; int money; } a[MAXN];
int n;
int fnd(string nm){ for(int i=1;i<=n;++i){ if(a[i].name==nm){ return i; } } return 0; }
int main(){ cin>>n; for(int i=1;i<=n;++i){ cin>>a[i].name; } string name; for(int l=1;l<=n;++l){ int yq,rs; cin>>name>>yq>>rs; int fd=fnd(name); if(rs==0){ a[fd].money+=yq; continue; } a[fd].money-=(yq-yq%rs); yq/=rs; for(int i=1;i<=rs;++i){ string sr; cin>>sr; int fd2=fnd(sr); a[fd2].money+=yq; } } for(int i=1;i<=n;++i){ cout<<a[i].name<<' '<<a[i].money<<'\n'; } return 0; }
|