Submission #1241063

#TimeUsernameProblemLanguageResultExecution timeMemory
1241063badge881Poi (IOI09_poi)C++20
100 / 100
218 ms16152 KiB
#include <bits/stdc++.h>
using namespace std;

struct Contestant {
    int id;
    int score = 0;
    int solved = 0;
};

int main() {

    int n, t, p;
    scanf("%d%d%d",&n,&t,&p);
    
    vector<vector<int>> submissions(n, vector<int>(t));
    vector<int> problemWeight(t, 0);

    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < t; ++j) {
			scanf("%d", &submissions[i][j]);
            if (submissions[i][j] == 0) {
                problemWeight[j]++;
            }
        }
    }

    vector<Contestant> contestants(n);
    for (int i = 0; i < n; ++i) {
        contestants[i].id = i + 1;
        for (int j = 0; j < t; ++j) {
            if (submissions[i][j] == 1) {
                contestants[i].score += problemWeight[j];
                contestants[i].solved++;
            }
        }
    }

    sort(contestants.begin(), contestants.end(), [](const Contestant& a, const Contestant& b) {
        if (a.score != b.score) return a.score > b.score;
        if (a.solved != b.solved) return a.solved > b.solved;
        return a.id < b.id;
    });

    for (int rank = 0; rank < n; ++rank) {
        if (contestants[rank].id == p) {
			printf("%d %d\n", contestants[rank].score, (rank + 1));
			break;
        }
    }

    return 0;
}

Compilation message (stderr)

poi.cpp: In function 'int main()':
poi.cpp:13:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |     scanf("%d%d%d",&n,&t,&p);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~
poi.cpp:20:30: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   20 |                         scanf("%d", &submissions[i][j]);
      |                         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...