https://www.luogu.org/problem/show?pid=1201#sub
注意的问题:送出去的钱是整数!
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<vector>
#include<algorithm>
#include<map>
using namespace std;
int n;
map <string,int> per;
struct H{
string name;
int m1;
int m2;
}p[20];
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
cin>>p[i].name;
per[p[i].name]=i;
}
for(int i=1;i<=n;i++)
{
string c;
cin>>c;
int k=per[c];
int a,b;
scanf("%d%d",&a,&b);
p[k].m1=a;
for(int j=1;j<=b;j++)//排除了b=0的时候
{
cin>>c;
p[per[c]].m2+=p[k].m1/b;
p[k].m1=p[k].m1/b*b;//送出去的钱是整数
}
}
for(int i=1;i<=n;i++)
{
cout<<p[i].name<<' ';
printf("%d\n",p[i].m2-p[i].m1);
}
return 0;
}