Submission #1323717

#TimeUsernameProblemLanguageResultExecution timeMemory
1323717hyyhPoi (IOI09_poi)C++20
100 / 100
425 ms16148 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int,int>;
using piii = tuple<int,int,int>;
#define endl '\n'
#define f first
#define s second

bool comp(piii &a,piii &b){
    if(get<0>(a) != get<0>(b)) return get<0>(a) > get<0>(b);
    else if(get<1>(a) != get<1>(b)) return get<1>(a) > get<1>(b);
    else return get<2>(a) < get<2>(b);
}

int main(){
    int n;cin >> n;
    int m;cin >> m;
    int k;cin >> k;
    vector<int> sum(m,n);
    vector<piii> score;
    vector<vector<int>> inp(n,vector<int>(m));
    for(int i{};i < n;i++){
        for(int j{};j < m;j++){
            cin >> inp[i][j];
            if(inp[i][j]) sum[j]--;
        }
    }
    for(int i{};i < n;i++){
        score.emplace_back(0,0,i+1);
        for(int j{};j < m;j++){
            if(inp[i][j]){
                get<0>(score[i]) += sum[j];
                get<1>(score[i])++;
            }
        }
    }
    sort(score.begin(),score.end(),comp);
    for(int i{};i < n;i++){
        //cout << score[i].f << " " << score[i].s << endl;
        if(get<2>(score[i]) == k){
            cout << get<0>(score[i]) << " " << i+1;
            return 0;
        }
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...