Submission #1278940

#TimeUsernameProblemLanguageResultExecution timeMemory
1278940sagnbaevvPoi (IOI09_poi)C++20
100 / 100
167 ms31836 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;
struct stats {
    int solved;
    int idx;
    int points;
};
bool srt(stats a, stats b) {
    if (a.points == b.points) {
        if (a.solved == b.solved) {
            return a.idx < b.idx;
        }
        else {
            return a.solved > b.solved;
        }
    }
    else {
        return a.points > b.points;
    }
}
void solve() {
    int n, t, p;
    cin >> n >> t >> p;
    vector <vector <int> > v(n, vector <int>(t));
    vector <int> point(t, 0);
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < t; j++) {
            cin >> v[i][j];
            if (v[i][j] == 0) {
                point[j]++;
            }
        }
    }
    vector <stats> table(n);
    for (int i = 0; i < n; i++) {
        int sum = 0;
        int cnt = 0;
        for (int j = 0; j < t; j++) {
            if (v[i][j] == 1) {
                sum += point[j];
                cnt++;
            }
        }
        table[i].points = sum;
        table[i].solved = cnt;
        table[i].idx = i + 1;
    }
    sort(table.begin(), table.end(),srt);
    for (int i = 0; i < n; i++) {
        if (table[i].idx == p) {
            cout << table[i].points << " " << i + 1 << endl;
            return;
        }
    }
}

signed main() {
    ios::sync_with_stdio(false);    
    cin.tie(0);
    int t = 1;
    //cin >> t;     
    while (t--) {
        solve();
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...