Submission #309879

# Submission time Handle Problem Language Result Execution time Memory
309879 2020-10-04T20:55:48 Z Temmie Poi (IOI09_poi) C++17
100 / 100
337 ms 9752 KB
#include <bits/stdc++.h>

int n, t, p;

struct C {
	int id;
	int point = 0;
	std::vector <int> solve;
	bool operator<(const C& other) const {
		if (point == other.point) {
			if (solve.size() == other.solve.size()) return id < other.id;
			return solve.size() > other.solve.size();
		}
		return point > other.point;
	}
};

std::vector <int> task;
std::vector <C> c;

int main() {
	std::ios::sync_with_stdio(0); std::cin.tie(0);
	
	std::cin >> n >> t >> p;
	task.resize(t, 0);
	c.resize(n);
	for (int i = 0; i < n; i++) {
		c[i].id = i;
		for (int j = 0; j < t; j++) {
			bool now; std::cin >> now;
			task[j] += now;
			if (now) c[i].solve.push_back(j);
		}
	}
	for (int i = 0; i < t; i++) {
		task[i] = n - task[i];
	}
	for (int i = 0; i < n; i++) {
		for (int x : c[i].solve) {
			c[i].point += task[x];
		}
	}
	std::sort(c.begin(), c.end());
	for (int i = 0; i < n; i++) {
		if (c[i].id == p - 1) {
			std::cout << c[i].point << " " << i + 1 << "\n";
			return 0;
		}
	}
	
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 384 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 0 ms 384 KB Output is correct
5 Correct 1 ms 384 KB Output is correct
6 Correct 1 ms 384 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
8 Correct 1 ms 384 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 3 ms 384 KB Output is correct
11 Correct 11 ms 640 KB Output is correct
12 Correct 18 ms 896 KB Output is correct
13 Correct 51 ms 1784 KB Output is correct
14 Correct 72 ms 2424 KB Output is correct
15 Correct 128 ms 5240 KB Output is correct
16 Correct 141 ms 5624 KB Output is correct
17 Correct 202 ms 6392 KB Output is correct
18 Correct 230 ms 7252 KB Output is correct
19 Correct 301 ms 8440 KB Output is correct
20 Correct 337 ms 9752 KB Output is correct