考え
この質問は、シミュレーションを行うために使用することができますが、それは非常に面倒でエラーが発生しやすくなり、この質問は、最良の方法は、それを行うには、ハッシュテーブルでマップを使用することです。
オブジェクトマッピングは、int型のマップに文字列を作成し、名前によってインデックス付けするために、出力が完了した後に計算お金分散データは、であってもよいです。
さらに、順次にオブジェクトの名前を格納する文字列配列で、提案された名前を名前を保持する入力系列出力順と同じです。
コード
#include<iostream>
#include<map>
#include<string>
using namespace std;
int n,money,p,num;
string s,name[12];
map<string,int> cnt;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>name[i];
for(int i=1;i<=n;i++)
{
cin>>s>>money>>p;
if(p!=0)
num=money/p;//特判
else
num=0;
cnt[s]-=num*p;
for(int j=1;j<=p;j++)
{
string person;
cin>>person;
cnt[person]+=num;
}
}
for(int i=1;i<=n;i++)
cout<<name[i]<<" "<<cnt[name[i]]<<endl;
}