问题标题: 酷町堂:2556 发红包

0
0
已解决
李泽屿
李泽屿
新手启示者
新手启示者

题目链接: 酷町堂:2556

#include<iostream>
using namespace std;
int n,k;
struct r{
    int qr,q,r,id;
    string s;
}a[15];
//qr是每个人发完红包后的钱数。
//s是每个人的名字。
//r是每个人要发的人数 。
//q是每个人要发到总钱数。 
string t[15],p[15];
//p是每个人要发的人的名字 
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i].s;
    }
    for(int i=1;i<=n;i++){
        cin>>t[i]>>a[i].q>>a[i].r;
        for(int j=1;j<=a[i].r;j++){
            cin>>p[j];
        }
        a[i].id==i;
    }
    for(int i=1;i<=n;i++){
        a[i].qr-=a[i].q;
    }
    for(int i=1;i<=n;i++){
        if(a[i].q==0&&a[i].r==0)
            k=0;
        else
            k=a[i].q/a[i].r;
        //这时,k是最大化平均分的钱数
        for(int j=1;j<=n;j++){
            if(a[j].s==p[j]){
                a[a[j].id].qr+=k;
            }
        }
    }
    for(int i=1;i<=n;i++){
        cout<<a[i].s<<" "<<a[i].qr<<"\n";
    }
    return 0;
}

谁会啊!!!

我要回答