USACO Greedy Gift Givers


给别人的钱是要均分的,没有小数点,分不尽就给自己,注意的是,拿出去分的是自己的钱,所以    分的人的钱=分的人原本的钱-拿出来分的钱+分不尽的钱

/*
ID: kdk5501
TASK : gift1 
LANG : C++
*/

#include 
#include 
#include <string>

using namespace std;
struct people
{
    string name;
    int money;
}person[110];


int main() {
    
    

    freopen("gift1.in","r",stdin);
    freopen("gift1.out","w",stdout);

    int n;  cin>>n;

    for(int i=1;i<=n;i++)
    {
        cin>>person[i].name;
        person[i].money=0;
    }
    int m=n;
    for(int i=1;i<=n;i++)
    {
        string op;  cin>>op;
        int sum,t,temp,add=0;
        cin>>sum>>t;

        if(t==0)
        {
            for(int i=1;i<=n;i++)
            {
                if(person[i].name==op)
                {
                    person[i].money+=sum;
                    break;
                }
            }
            continue;
        }


        temp=sum/t;
        for(int i=1;i<=t;i++)
        {
            string na;
            cin>>na;
            for(int i=1;i<=n;i++)
            {
                if(person[i].name==na)
                {
                    person[i].money+=temp;
                    break;
                }
            }
        }

        for(int i=1;i<=n;i++)
        {
            if(person[i].name==op)
            {
                person[i].money-=sum;
                person[i].money+=(sum-temp*t);
            }
        }
    }

    for(int i=1;i<=n;i++)
    {
        cout<" "<endl;
    }
    return 0;
}