用STL中的map记录每个人的收支状况
注意:无法发出的钱归自己所有
/*
ID: xsy97051
LANG: C++
TASK: gift1
*/
#include<iostream>
#include<cstdio>
#include<map>
#include<algorithm>
using namespace std;
map<string,int> shou;
map<string,int> fa;
string name[100];
int main()
{
freopen("gift1.in","r",stdin);
freopen("gift1.out","w",stdout);
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>name[i];
for(int i=1;i<=n;i++)
{
string name;
cin>>name;
int m,k;
cin>>m>>k;
if(k==0) continue;
fa[name]+=m;
shou[name]+=m%k;
for(int j=1;j<=k;j++)
{
string p;
cin>>p;
shou[p]+=m/k;
}
}
for(int i=1;i<=n;i++)
{
int ans=shou[name[i]]-fa[name[i]];
cout<<name[i]<<" "<<ans<<endl;
}
return 0;
}