제출 #463071

#제출 시각아이디문제언어결과실행 시간메모리
463071danielsuhPoi (IOI09_poi)C++17
100 / 100
445 ms23796 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int mxN = 2005; int task[mxN][mxN]; vector<int> scores(mxN), cont(mxN), task_solved(mxN); bool cmp(const int &a, const int &b) { if(cont[a] != cont[b]) { return cont[a] > cont[b]; } if(task_solved[a] != task_solved[b]) { return task_solved[a] > task_solved[b]; } return a < b; } int32_t main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, T, P; cin >> N >> T >> P; for(int i = 0; i < N; i++) { for(int j = 0; j < T; j++) { cin >> task[i][j]; } } for(int i = 0; i < T; i++) { int temp = 0; for(int j = 0; j < N; j++) { temp += int(task[j][i] == 0); } scores[i] = temp; } for(int i = 0; i < N; i++) { for(int j = 0; j < T; j++) { task[i][j] == 1 ? cont[i] += scores[j] : cont[i] += 0; task_solved[i] += int(task[i][j] == 1); } } vector<int> indices(N); for(int i = 0; i < N; i++) { indices[i] = i; } sort(indices.begin(), indices.end(), cmp); cout << cont[P - 1] << " "; for(int i = 0; i < N; i++) { if(indices[i] == P - 1) { cout << i + 1 << "\n"; return 0; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...