2 条题解

  • 0
    @ 2026-4-4 12:12:39

    直接按公式排就可以了。

    AC code:

    #include <bits/stdc++.h>
    using namespace std;
    
    struct Node {
        string name;
        double k;
    };
    
    bool cmp(const Node& a, const Node& b) {
        return a.k > b.k;
    }
    
    int main() {
        freopen("football.in", "r", stdin);
        freopen("football.out", "w", stdout);
        int T;
        cin >> T;
        while (T--) {
            int a;
            cin >> a;
            vector<Node> Nodes(a);
            for (int i = 0; i < a; i++) {
                string name;
                long long m, n;
                int t;
                cin >> name >> m >> n >> t;
                double k = (0.6 * m + 0.3 * n) * 0.1 * t;
                Nodes[i].name = name, Nodes[i].k = k;
            }
            sort(Nodes.begin(), Nodes.end(), cmp);
            for (int i = 0; i < a; i++) {
                if (i > 0) {
                    cout << " ";
                }
                cout << Nodes[i].name;
            }
            cout << endl;
        }
        return 0;
    }
    

    信息

    ID
    104
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    43
    已通过
    10
    上传者