Submission #771889

#TimeUsernameProblemLanguageResultExecution timeMemory
771889BlockOGPoi (IOI09_poi)C++14
0 / 100
484 ms16008 KiB
#include <iostream>
#include <algorithm>
#include <utility>

using namespace std;

/*
5 3 2
0 0 1
1 1 0
1 0 0
1 1 0
1 1 0

*/

struct Contestant {
    int score, problems, id;
};

bool compare(Contestant a, Contestant b) {
    if (a.score > b.score) return true;
    if (a.score < b.score) return false;
    if (a.problems > b.problems) return true;
    if (a.problems < b.problems) return false;
    return a.id < b.id;
}

int solved[2000][2000];
int not_solved[2000];
Contestant score[2000];

int main() {
    int n, t, p; cin >> n >> t >> p; p--;

    for (int i = 0; i < n; i++) {
        score[i].id = i;
        for (int j = 0; j < t; j++) {
            cin >> solved[i][j];
            if (solved[i][j]) score[i].problems++;
            else not_solved[j]++;
        }
    }

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < t; j++) {
            if (solved[i][j])
                score[i].score += not_solved[j];
        }
    }

    sort(score, score + n, compare);
    for (int i = 0; i < n; i++) {
        if (score[i].id == p) {
            cout << i + 1 << endl;
            break;
        }
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...