| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1338319 | voldi9 | Poi (IOI09_poi) | C++20 | 230 ms | 9476 KiB |
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int n, t, p, b;
struct user {
vector <int> solved;
int index;
int score;
};
bool userCmp(user a, user b)
{
if (a.score != b.score)
return a.score > b.score;
if (a.solved.size() != b.solved.size())
return a.solved.size() < b.solved.size();
return a.index < b.index;
}
int main() {
scanf("%d%d%d", &n, &t, &p);
p--;
vector<user> users(n);
vector<int> task_score(t);
for (int i=0; i<n; i++) {
user user{.index = i};
for (int x=0; x<t; x++) {
scanf("%d", &b);
if(b)
user.solved.push_back(x);
else
task_score[x]++;
}
users[i] = std::move(user);
}
for (int i=0; i<n; i++)
for (int j=0; j<users[i].solved.size(); j++)
users[i].score += task_score[users[i].solved[j]];
sort(users.begin(), users.end(), userCmp);
for (int i=0; i<n; i++)
if (users[i].index == p)
printf("%d %d", users[i].score, i+1);
return 0;
}Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
