Submission #597623

# Submission time Handle Problem Language Result Execution time Memory
597623 2022-07-16T12:18:27 Z l_reho Poi (IOI09_poi) C++14
100 / 100
565 ms 16016 KB
#include <bits/stdc++.h>
using namespace std;

#define ll long long

int N, K, P;
vector<vector<int>> V;
vector<int> S;

bool compare(array<int, 3> a1, array<int, 3> a2){
	if(a1[0] > a2[0]) return true;
	if(a1[0] == a2[0] && a1[1] > a2[1]) return true;
	if(a1[0] == a2[0] && a1[1] == a2[1] && a1[2] < a2[2]) return true;
	return false;
}

void solve(){
	
	cin>>N>>K>>P;
	V.assign(N, vector<int>(K, 0));
	S.assign(K, 0);
	
	for(int i = 0; i < N; i++)
		for(int j = 0; j < K;  j++) cin>>V[i][j];
	
	
	
	for(int i = 0; i < K; i++){
		for(int j = 0; j < N; j++){
			S[i]+=V[j][i];
		}
		S[i] = N-S[i];
	}
	
	vector<array<int, 3>> A(N);
	
	// faccio cose
	for(int i = 0; i < N; i++){
		int points = 0, solved = 0;
		for(int j = 0; j < K; j++){
			solved += V[i][j];
			if(V[i][j]) points += S[j];
		}
		A[i] = array<int,3>{points, solved, i};
	}
	
	
	sort(A.begin(), A.end(), compare);
	
	for(int i = 0; i < N; i++) if(A[i][2] == P-1){cout<<A[i][0]<<" "<<i+1<<endl; break;}
	
}

int main(){
	solve();
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 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 2 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 3 ms 340 KB Output is correct
10 Correct 5 ms 340 KB Output is correct
11 Correct 20 ms 780 KB Output is correct
12 Correct 28 ms 1104 KB Output is correct
13 Correct 82 ms 2624 KB Output is correct
14 Correct 116 ms 3652 KB Output is correct
15 Correct 249 ms 6192 KB Output is correct
16 Correct 221 ms 6684 KB Output is correct
17 Correct 353 ms 9736 KB Output is correct
18 Correct 393 ms 11004 KB Output is correct
19 Correct 516 ms 14456 KB Output is correct
20 Correct 565 ms 16016 KB Output is correct