1 条题解

  • 3
    @ 2023-4-15 22:26:07

    以下为ChatGPT-3.5给出的解答(Accepted)

    #include<bits/stdc++.h>
    using namespace std;
    
    int main(){
        int np;
        scanf("%d", &np);
        unordered_map<string, int> m;  // 存储每个人的信息
        vector<string> v(np);          // 存储每个人的名字
        for(int i=0;i<np;i++){
            string name;
            cin >> name;
            v[i] = name;
            m[name] = 0;
        }
    
        while(cin >> ws, !cin.eof()){ // 读入直到文件末尾
            string sender;
            cin >> sender;
            int money, NGi;
            scanf("%d%d", &money, &NGi);
            int avg = (NGi == 0 ? 0 : money / NGi);  // 求出平均每人收到的钱数
            m[sender] -= avg * NGi;        // 更新发礼物者的余额
            for(int i=0;i<NGi;i++){
                string receiver;
                cin >> receiver;
                m[receiver] += avg;        // 更新接礼人的余额
            }
        }
    
        for(int i=0;i<np;i++){     // 按照输入顺序输出每个人的余额
            cout << v[i] << ' ' << m[v[i]] << endl;
        }
    
        return 0;
    }
    

    信息

    ID
    4
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    递交数
    44
    已通过
    19
    上传者