题解bys00000b
使用模拟算法(模拟算法即按照题目所描述的方式运行,最终得到答案。)
需要使用合适的数据结构来进行模拟
题目分析:按题目的要求使用模拟算法,可以使用结构体来贮存,还可以用STL的map,要注意除数为0的情况
AC代码
#include <bits/stdc++.h>
using namespace std;
map<string,int>ans;
int main() {
int n,money;
cin>>n;
string name[15],s,Friend;
for(int i=1;i<=n;i++)
cin>>name[i];
for(int i=1,num;i<=n;i++)
{
cin>>s>>money>>num;
for(int j=1;j<=num;j++)
{
cin>>Friend;
ans[Friend]+=money/num;
}
if(num!=0)
ans[s]=ans[s]-money+money%num;
}
for(int i=1;i<=n;i++)
cout<<name[i]<<' '<<ans[name[i]]<<endl;
return 0;
} //过不了就是你复制错了,我AC了