답안 #635780

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
635780 2022-08-26T22:29:00 Z Dec0Dedd CONSUL (info1cup19_consul) C++14
100 / 100
61 ms 208 KB
#include <bits/stdc++.h>
#include "grader.h"

using namespace std;

mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

int rnd(int a, int b){ 
	return a+rng()%(b-a+1);
}

void solve(int n) {
   pair<int, int> x={0, -1};

   vector<int> v;
   for (int i=1; i<=n; ++i) v.push_back(i);
   shuffle(v.begin(), v.end(), rng);

   if (n <= 50) {
      map<int, int> cnt;
      for (int i=1; i<=n; ++i) {
         int val=kth(i);
         ++cnt[val];

         if (cnt[val] > n/3) {
            say_answer(val);
            return;
         }
      }

      say_answer(-1);
      return;
   }

   for (int i=0; i<min(n, 30); ++i) {
      int r=v[i], val=kth(r);
      x=max(x, {cnt(val), val});
   }
   if (x.first > n/3) say_answer(x.second);
   else say_answer(-1); 
}
# 결과 실행 시간 메모리 Grader output
1 Correct 29 ms 208 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 52 ms 208 KB Output is correct
2 Correct 51 ms 208 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 57 ms 208 KB Output is correct
2 Correct 50 ms 208 KB Output is correct
3 Correct 56 ms 208 KB Output is correct
4 Correct 45 ms 208 KB Output is correct
5 Correct 47 ms 208 KB Output is correct
6 Correct 61 ms 208 KB Output is correct
7 Correct 50 ms 208 KB Output is correct
8 Correct 51 ms 208 KB Output is correct
9 Correct 23 ms 208 KB Output is correct
10 Correct 52 ms 208 KB Output is correct
11 Correct 39 ms 208 KB Output is correct
12 Correct 46 ms 208 KB Output is correct
13 Correct 40 ms 208 KB Output is correct
14 Correct 46 ms 208 KB Output is correct