Submission #277080

# Submission time Handle Problem Language Result Execution time Memory
277080 2020-08-21T02:49:42 Z ec1117 Poi (IOI09_poi) C++17
100 / 100
1070 ms 17532 KB
//#include "bits/stdc++.h";
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <typeinfo>
#include <utility>
#include <valarray>
#include <vector>
using namespace std;

#define pb push_back
#define mp make_pair

int n, t, p;
int main() {
    cin >> n >> t >> p;
    p--;
    int taskSolved[t];
    vector<int> pSolved[n];
    int pscore[n];
    for(int i=0;i<t;i++)
        taskSolved[i]=0;
    for(int i=0;i<n;i++)
        pscore[i]=0;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < t; j++) {
            int x;
            cin >> x;
            if (x == 1) {
                taskSolved[j]++;
                pSolved[i].push_back(j);
            }
        }
    }
    for (int i = 0; i < t; i++) {
        taskSolved[i] = n - taskSolved[i];
    }
    vector<pair<pair<int,int>,int> >standings;
    for(int i=0;i<n;i++){
        for(int j:pSolved[i]){
            pscore[i]+=taskSolved[j];
        }
        standings.pb(mp(mp(pscore[i],pSolved[i].size()),-i));
    }
    sort(standings.begin(),standings.end());
    int rank=0, score=0;
    for(int i=n-1;i>=0;i--){
        if(standings[i].second==-p){
            rank=n-i;
            score=standings[i].first.first;
            break;
        }
    }
    cout << score << ' '<<rank;
    return 0;


}
/*
 * need to sort by custom comparator:
 * need to know score, tasks solved, id
 */
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 1 ms 256 KB Output is correct
4 Correct 1 ms 256 KB Output is correct
5 Correct 1 ms 256 KB Output is correct
6 Correct 1 ms 256 KB Output is correct
7 Correct 2 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 5 ms 384 KB Output is correct
10 Correct 9 ms 512 KB Output is correct
11 Correct 35 ms 1016 KB Output is correct
12 Correct 55 ms 1272 KB Output is correct
13 Correct 165 ms 2972 KB Output is correct
14 Correct 231 ms 4088 KB Output is correct
15 Correct 412 ms 8188 KB Output is correct
16 Correct 463 ms 8824 KB Output is correct
17 Correct 657 ms 11256 KB Output is correct
18 Correct 731 ms 12600 KB Output is correct
19 Correct 962 ms 15608 KB Output is correct
20 Correct 1070 ms 17532 KB Output is correct