Submission #797046

# Submission time Handle Problem Language Result Execution time Memory
797046 2023-07-29T05:17:44 Z pluto_ish Poi (IOI09_poi) C++14
100 / 100
497 ms 23872 KB
#include <bits/stdc++.h>

using namespace std;

struct d_score{
	int score;
	int num_problems;
	int id;
};

bool cmp(d_score a, d_score b){
	if(a.score == b.score){
		if(a.num_problems == b.num_problems) return a.id < b.id;
		return a.num_problems > b.num_problems;
	}
	return a.score > b.score;
}

int main(){
	int n, t, p;
	cin >> n >> t >> p;
	vector< vector<int> > a(n, vector<int>(t, 0));
	for(vector<int>& x : a){
		for(int& y : x) cin >> y;
	}
	
	vector<int> pts(t, 0);
	for(int i=0;i<t;i++){
		for(int j=0;j<n;j++){
			if(a[j][i] == 0) pts[i]++;
		}
	}

	vector<d_score> scores(n);
	for(int i=0;i<n;i++){
		int np = 0, sc = 0;
		for(int j=0;j<t;j++){
			if(a[i][j]){
				np++;
				sc += pts[j];
			}
		}
		scores[i] = d_score{sc, np, i+1};
	}
	sort(scores.begin(), scores.end(), cmp);
	for(int i=0;i<n;i++){
		if(scores[i].id == p){
			cout << scores[i].score << " " << i+1 << "\n";
			break;
		}
	}

	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 304 KB Output is correct
4 Correct 0 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 212 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 3 ms 340 KB Output is correct
10 Correct 4 ms 440 KB Output is correct
11 Correct 15 ms 1016 KB Output is correct
12 Correct 25 ms 1472 KB Output is correct
13 Correct 73 ms 3768 KB Output is correct
14 Correct 105 ms 5300 KB Output is correct
15 Correct 186 ms 9244 KB Output is correct
16 Correct 199 ms 9868 KB Output is correct
17 Correct 292 ms 14328 KB Output is correct
18 Correct 336 ms 16448 KB Output is correct
19 Correct 447 ms 21428 KB Output is correct
20 Correct 497 ms 23872 KB Output is correct