#include <iostream>
#include <bits/stdc++.h>
using namespace std;
map<string,int> ma;
string name[10005],giver,re;
int n,m,money;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>name[i];
ma[name[i]]=0;
}
//分段
for(int i=1;i<=n;i++)
{
cin>>giver;//谁要送礼
cin>>money>>m;//金额和人数
//只送整数,余数返回给giver
if(m==0)//如果不分给其他人,钱就自己留着
{
ma[giver]+=money;
continue;
}
for(int j=1;j<=m;j++)
{
cin>>re;//谁收礼
//把金额加到受礼者头上
ma[re]+=money/m;
}
ma[giver]-=money;
if(money==0)
{
continue;
}
ma[giver]+=money%(money/m);
}
for(int i=1;i<=n;i++)
{
cout<<name[i]<<' '<<ma[name[i]]<<"\n";
}
return 0;
}
这道题用的是map做的,第一个测试点错了。我下载了数据,输出的倒数第二个数目不对,好像少了4.求助大佬帮忙看一下,谢谢啦!