Submission #348778

# Submission time Handle Problem Language Result Execution time Memory
348778 2021-01-15T16:54:50 Z Alma Poi (IOI09_poi) C++14
70 / 100
715 ms 16236 KB
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
 
void POI (vector<vector<int>>& results, int& N, int& T, int& P) {
    vector<int> value;
    value.assign(T, 0);
    // value of each problem
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < T; j++) {
            if (results[i][j] == 0) {
                value[j]++;
            }
        }
    }
    // scores: points-solved-ID
    vector<vector<int>> scores (N, vector<int> (3));
    for (int i = 0; i < N; i++) {
        int points = 0;
        int solved = 0;
        for (int j = 0; j < T; j++) {
            if (results[i][j] == 1) {
                points += value[j];
                solved++;
            }
        }
        scores[i][0] = points;
        scores[i][1] = solved;
        scores[i][2] = i+1;
    }
    // Philip:
    int P_score = scores[P-1][0];
    int P_solved = scores[P-1][1];
    int P_rank;
    // Philip rank
    sort(scores.rbegin(), scores.rend());
    for (int i = 0; i < N; i++) {
        if (scores[i][0] == P_score) {
            if (scores[i][1] == P_solved) {
                if (scores[i][2] == P) {
                    P_rank = i+1;
                }}}
    }
    cout << P_score << ' ' << P_rank << endl;
}
 
int main () {
    int N, T, P; cin >> N >> T >> P;
    vector<vector<int>> results (N, vector<int> (T));
 
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < T; j++) {
            int a; cin >> a;
            results[i][j] = a;
        }
    }
    POI (results, N, T, P);
}

Compilation message

poi.cpp: In function 'void POI(std::vector<std::vector<int> >&, int&, int&, int&)':
poi.cpp:47:31: warning: 'P_rank' may be used uninitialized in this function [-Wmaybe-uninitialized]
   47 |     cout << P_score << ' ' << P_rank << endl;
      |                               ^~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 364 KB Output isn't correct
2 Correct 0 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Incorrect 1 ms 364 KB Output isn't correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 1 ms 364 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
8 Correct 2 ms 364 KB Output is correct
9 Correct 3 ms 364 KB Output is correct
10 Correct 6 ms 492 KB Output is correct
11 Correct 22 ms 896 KB Output is correct
12 Incorrect 36 ms 1132 KB Output isn't correct
13 Incorrect 107 ms 2668 KB Output isn't correct
14 Correct 154 ms 3692 KB Output is correct
15 Incorrect 269 ms 6252 KB Output isn't correct
16 Correct 295 ms 6892 KB Output is correct
17 Correct 430 ms 9836 KB Output is correct
18 Correct 483 ms 11116 KB Output is correct
19 Incorrect 645 ms 14572 KB Output isn't correct
20 Correct 715 ms 16236 KB Output is correct