在这里插入图片描述
https://www.acwing.com/problem/content/description/1342/

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;
int n;
string s[N];
unordered_map<string,int>mp;
int main(void)
{
    cin>>n;
    for(int i=0;i<n;i++) cin>>s[i];
    for(int i=0;i<n;i++)
    {
        string id; 
        int sum,m,temp; 
        cin>>id>>sum>>m;
        if(m==0) continue;//分零个人,可以直接跳过
        for(int j=0;j<m;j++) 
        {
            string name; cin>>name;
            mp[name]=mp[name]+sum/m;
        }
        mp[id]=mp[id]-sum/m*m;//现在的减去,分配的
    }
    for(int i=0;i<n;i++) cout<<s[i]<<" "<<mp[s[i]]<<endl;
    return 0;
}

更多推荐