답안 #342523

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
342523 2021-01-02T10:13:10 Z marvenlee Poi (IOI09_poi) C++14
100 / 100
668 ms 23788 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){
  if(l.total_score > r.total_score){
   return true;
  }
  elif (l.total_score < r.total_score) return false;
  elif (l.number > r.number){
    return true;
  }
  elif (l.number<r.number) return false;
  elif( l.id < r.id){
    return true;
  }

  return false;
}
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;
      }
  }

 

  
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 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 364 KB Output is correct
9 Correct 3 ms 364 KB Output is correct
10 Correct 6 ms 492 KB Output is correct
11 Correct 21 ms 1004 KB Output is correct
12 Correct 34 ms 1516 KB Output is correct
13 Correct 117 ms 3948 KB Output is correct
14 Correct 144 ms 5356 KB Output is correct
15 Correct 250 ms 9196 KB Output is correct
16 Correct 278 ms 9968 KB Output is correct
17 Correct 406 ms 14452 KB Output is correct
18 Correct 509 ms 16492 KB Output is correct
19 Correct 601 ms 21740 KB Output is correct
20 Correct 668 ms 23788 KB Output is correct