Submission #342528

# Submission time Handle Problem Language Result Execution time Memory
342528 2021-01-02T10:21:59 Z marvenlee Poi (IOI09_poi) C++14
100 / 100
663 ms 15952 KB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> ii;
typedef pair<ll, ii> iii;
typedef string str;
typedef vector<ll>  vl;
typedef vector< vector<ll> > vvl;
typedef vector<ii> vii;
typedef vector< vector<ii> > vvii;
typedef vector<iii> viii;
typedef vector< vector<iii> > vviii;
typedef vector<str>  vs;
typedef vector< vector<str> > vvs;
typedef long double ld;

//typelower_bounddef priority_queue<long long> pq;
//typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> pbds;
typedef set<int>::iterator sit;
typedef map<int,int>::iterator mit;
typedef vector<int>::iterator vit;

#define elif else if
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define FOR(i,v) for(auto i:v)
#define rep(i,a,b) for(int i=(a);i<(b);i++)
#define repn(i,a,b) for(int i=(a);i<=(b);i++)
#define repin(i,a,b,x) for(int i=(a);i<(b);i+=x)
#define repnin(i,a,b,x) for(int i=(a);i<=(b);i+=x)
#define MAX(a,b) a=max(a,b)
#define MIN(a,b) a=min(a,b)
#define fbo find_by_order
#define ook order_of_key

// if else int i = (number <0) ? 1:0 -  if (number <0) i=1 else 0
const ll MOD = 1e9 + 7;
const ll INF = 1e9;
const ld EPS = 1e-9;
struct score{
  int total_score=0;
  int number=0;
  int id;
};

bool cmpr(score l, score r){
  return ((l.total_score>r.total_score)|| 
            ( (l.total_score==r.total_score && l.number>r.number) || 
                  (l.total_score == r.total_score && l.number==r.number && l.id<r.id)
                          ) 
                              );
  
}
int main()
{ 
  int n,t,p;
  cin >> n >>t >> p;
  score sc[n];
  int task[n][t];
int solve[2001]={0};
  rep(i,0,n){
    rep(j,0,t){
      cin >> task[i][j];
      solve[j]+=task[i][j];    }
       
  }
  rep(i,0,n){
    sc[i].id = i;
    rep(j,0,t){
      if(task[i][j]){
        sc[i].number+=1;
        sc[i].total_score+=n-solve[j];
      
      }
     
    }
    
  }
  sort(sc,sc+n,cmpr);
  p--;

cout << endl;
  rep(i,0,n){
      if(sc[i].id==p){
        cout << sc[i].total_score << " " <<  i+1 << endl;
      }
  }

 

  
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 0 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 1 ms 364 KB Output is correct
7 Correct 1 ms 364 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 3 ms 492 KB Output is correct
10 Correct 5 ms 492 KB Output is correct
11 Correct 21 ms 748 KB Output is correct
12 Correct 34 ms 1132 KB Output is correct
13 Correct 102 ms 2668 KB Output is correct
14 Correct 168 ms 3712 KB Output is correct
15 Correct 251 ms 6252 KB Output is correct
16 Correct 290 ms 6764 KB Output is correct
17 Correct 430 ms 9836 KB Output is correct
18 Correct 483 ms 11116 KB Output is correct
19 Correct 632 ms 14700 KB Output is correct
20 Correct 663 ms 15952 KB Output is correct