Submission #670733

# Submission time Handle Problem Language Result Execution time Memory
670733 2022-12-10T06:18:08 Z vjudge1 Poi (IOI09_poi) C++17
100 / 100
201 ms 9616 KB
// https://oj.uz/problem/view/IOI09_poi?locale=en
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

struct Contestant {
    int id, tasks_solved = 0, score = 0;
    vector<int> number_of_task;
};

bool operator<(const Contestant &a, const Contestant &b) {
    if (a.score > b.score) return true;
    else {
        if (a.score < b.score) return false;
        else {
            if (a.tasks_solved > b.tasks_solved) return true;
            else {
                if (a.tasks_solved < b.tasks_solved) return false;
                else {
                    if (a.id < b.id) return true;
                    else return false;
                }
            }
        }
    }
};

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    int n, t, p;
    cin >> n >> t >> p;

    vector<int> points_by_task(t + 1);
    points_by_task.assign(points_by_task.size(), 0);

    vector<Contestant> contestants(n);
    for (int i = 0; i < n; i++) {
        contestants[i].id = i + 1;
        for (int j = 0; j < t; j++) {
            int x; cin >> x;
            if (x == 0) {
                points_by_task[j + 1]++;
            } else {
                contestants[i].tasks_solved++;
                contestants[i].number_of_task.push_back(j + 1);
            }
        }
    }

    for (Contestant& c : contestants) {
        for (const int& num : c.number_of_task)
            c.score += points_by_task[num];
    }

    sort(contestants.begin(), contestants.end());
    for (int i = 0; i < n; i++) {
        if (contestants[i].id == p) {
            cout << contestants[i].score << " " << i + 1;
            break;
        }
    }

    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 1 ms 340 KB Output is correct
10 Correct 2 ms 340 KB Output is correct
11 Correct 6 ms 628 KB Output is correct
12 Correct 10 ms 824 KB Output is correct
13 Correct 29 ms 1740 KB Output is correct
14 Correct 43 ms 2252 KB Output is correct
15 Correct 78 ms 5156 KB Output is correct
16 Correct 80 ms 5488 KB Output is correct
17 Correct 119 ms 6336 KB Output is correct
18 Correct 131 ms 7116 KB Output is correct
19 Correct 173 ms 8384 KB Output is correct
20 Correct 201 ms 9616 KB Output is correct