Submission #717698

# Submission time Handle Problem Language Result Execution time Memory
717698 2023-04-02T10:56:46 Z EntityPlantt Poi (IOI09_poi) C++14
100 / 100
327 ms 9968 KB
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
int main() {
    int n, t, p, i, j, x;
    scanf("%d%d%d", &n, &t, &p);
    std::vector <int> solved[n], score(t, n), final(n, 0);
    int ppl[n];
    for (i = 0; i < n; i++) {
        ppl[i] = i;
        for (j = 0; j < t; j++) {
            scanf("%d", &x);
            if (x) {
                solved[i].push_back(j);
                score[j]--;
            }
        }
    }
    for (i = 0; i < n; i++) {
        for (j = 0; j < solved[i].size(); j++) {
            final[i] += score[solved[i][j]];
        }
    }
    std::sort(ppl, ppl + n, [&](int a, int b) {
        if (final[a] != final[b]) return final[a] > final[b];
        if (solved[a].size() != solved[b].size()) return solved[a].size() > solved[b].size();
        return a < b;
    });
    p--;
    /* for (i = 0; i < n; i++) {
        if (ppl[i] == p) {
            printf(">%3d", i + 1);
        }
        else {
            printf("%4d", i + 1);
        }
        printf(" | Contestant #%d, Total: %d, Solved tasks: %d\n", ppl[i] + 1, final[ppl[i]], solved[ppl[i]].size());
    } */
    printf("%d %d", final[p], std::distance(ppl - 1, std::find(ppl, ppl + n, p)));
    return 0;
}

Compilation message

poi.cpp: In function 'int main()':
poi.cpp:21:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |         for (j = 0; j < solved[i].size(); j++) {
      |                     ~~^~~~~~~~~~~~~~~~~~
poi.cpp:40:17: warning: format '%d' expects argument of type 'int', but argument 3 has type 'std::iterator_traits<int*>::difference_type' {aka 'long int'} [-Wformat=]
   40 |     printf("%d %d", final[p], std::distance(ppl - 1, std::find(ppl, ppl + n, p)));
      |                ~^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                 |                          |
      |                 int                        std::iterator_traits<int*>::difference_type {aka long int}
      |                %ld
poi.cpp:7:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    7 |     scanf("%d%d%d", &n, &t, &p);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~
poi.cpp:13:18: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |             scanf("%d", &x);
      |             ~~~~~^~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 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 292 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 2 ms 340 KB Output is correct
10 Correct 3 ms 340 KB Output is correct
11 Correct 10 ms 796 KB Output is correct
12 Correct 17 ms 1160 KB Output is correct
13 Correct 50 ms 1996 KB Output is correct
14 Correct 98 ms 2640 KB Output is correct
15 Correct 130 ms 5444 KB Output is correct
16 Correct 132 ms 5840 KB Output is correct
17 Correct 228 ms 6684 KB Output is correct
18 Correct 217 ms 7484 KB Output is correct
19 Correct 305 ms 8888 KB Output is correct
20 Correct 327 ms 9968 KB Output is correct