Submission #485454

#TimeUsernameProblemLanguageResultExecution timeMemory
485454asij123Poi (IOI09_poi)C++14
100 / 100
604 ms23748 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

int n; int t; int p;



struct Contestant{

    int ID;

    int numSolved=0; int score=0; 

    int problemSet[2000]= {0};


 };

 bool comp(Contestant one, Contestant two){

    if(one.score== two.score){
        if(one.numSolved==two.numSolved){
            return one.ID > two.ID;
        }
        return one.numSolved< two.numSolved;
    }

    return one.score < two.score;
}

 int main(){
     cin >> n; cin >> t; cin >> p;

     Contestant arr [n];

     for(int i=1; i<= n; i++){
         Contestant& con= arr[i-1];
         con.ID= i;

         for(int j=0; j<t; j++){
             
             int ans; cin >>ans;
            
             con.problemSet[j]= ans;

             if(ans == 1){
                 con.numSolved++;
             }
        }
     }



     for(int i=0; i< t; i++){
        int points=0;

        for(Contestant& a: arr){
            if(a.problemSet[i]==0) points++;
        }


        for(Contestant& a: arr){
            if(a.problemSet[i]==1) a.score+=points;
           
        }
     }

     sort(arr, arr+n, comp);


     for(int i=0; i< n; i++){
         if(arr[i].ID== p){
             cout << arr[i].score << " " << (n-i);
         }
     }
     





     




 }
#Verdict Execution timeMemoryGrader output
Fetching results...