团体程序设计天梯赛题解——L2-009 抢红包

https://pintia.cn/problem-sets/994805046380707840/problems/994805066890854400

AC代码:

#include<bits/stdc++.h>

using namespace std;

struct per {

    int id;

    int p;

    int cnt;

} h[10100];

bool cmp(per a, per b) {

    if(a.p == b.p) {

        if(a.cnt == b.cnt) {

            return a.id < b.id;

        } else {

            return a.cnt > b.cnt;

        }

    } else

        return a.p > b.p;

}

int main() {

    int k;

    for(int i = 0; i < 10100; i++) {

        h[i].id = i;

        h[i].p = 0;

        h[i].cnt = 0;

    }

    cin >> k;

    for(int i = 1; i <= k; i++) {

        int m;

        cin >> m;

        for(int j = 0; j < m; j++) {

            int id, x;

            cin >> id >> x;

            h[id].p += x;

            h[i].p -= x;

            h[id].cnt++;

        }

    }

    sort(h + 1, h + k + 1, cmp);

    for(int i = 1; i <= k; i++) {

        cout << h[i].id << ' ';

        cout << setiosflags(ios::fixed);

        cout << setprecision(2);

        cout << h[i].p / 100.0 << endl;

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容