# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
347597 | 2021-01-13T09:00:39 Z | lebasivillar | Poi (IOI09_poi) | C++14 | 398 ms | 23916 KB |
#include <vector> #include <cassert> #include <algorithm> #include <cstdio> #include <iostream> #include <cstring> using namespace std; #define MAX_N 2000 #define MAX_T 2000 vector<int> solved[MAX_N]; int points[MAX_T]; int score[MAX_N]; bool poiLess(int x, int y) { if (score[x] > score[y]) return true; else if (score[x] == score[y]) { if (solved[x].size() > solved[y].size()) return true; else if (solved[x].size() == solved[y].size()) return x < y; else return false; } else return false; } int main() { int n, t, p; scanf("%d %d %d", &n, &t, &p); assert(1 <= n && n <= MAX_N); assert(1 <= t && t <= MAX_T); assert(1 <= p && p <= n); p--; memset(points, 0, sizeof(points)); for (int i = 0; i < n; i++) { solved[i].reserve(n); int x; for (int j = 0; j < t; j++) { scanf("%d", &x); if (x == 1) solved[i].push_back(j); else points[j]++; } } vector<int> sortedIds; sortedIds.reserve(n); for (int i = 0; i < n; i++) { score[i] = 0; for (unsigned int j = 0; j < solved[i].size(); j++) score[i] += points[solved[i][j]]; sortedIds.push_back(i); } sort(sortedIds.begin(), sortedIds.end(), poiLess); for (int i = 0; i < n; i++) if (sortedIds[i] == p) { cout << score[p] << " " << (i + 1) << endl; return 0; } assert(false); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 364 KB | Output is correct |
2 | Correct | 1 ms | 364 KB | Output is correct |
3 | Correct | 1 ms | 384 KB | Output is correct |
4 | Correct | 1 ms | 364 KB | Output is correct |
5 | Correct | 1 ms | 364 KB | Output is correct |
6 | Correct | 1 ms | 364 KB | Output is correct |
7 | Correct | 1 ms | 364 KB | Output is correct |
8 | Correct | 1 ms | 364 KB | Output is correct |
9 | Correct | 2 ms | 492 KB | Output is correct |
10 | Correct | 4 ms | 620 KB | Output is correct |
11 | Correct | 12 ms | 1004 KB | Output is correct |
12 | Correct | 21 ms | 1772 KB | Output is correct |
13 | Correct | 61 ms | 3436 KB | Output is correct |
14 | Correct | 87 ms | 6124 KB | Output is correct |
15 | Correct | 152 ms | 9040 KB | Output is correct |
16 | Correct | 164 ms | 10220 KB | Output is correct |
17 | Correct | 240 ms | 13932 KB | Output is correct |
18 | Correct | 270 ms | 17132 KB | Output is correct |
19 | Correct | 366 ms | 22764 KB | Output is correct |
20 | Correct | 398 ms | 23916 KB | Output is correct |