답안 #950156

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
950156 2024-03-20T05:58:01 Z Pring CONSUL (info1cup19_consul) C++17
93.5 / 100
20 ms 704 KB
#include <bits/stdc++.h>
#include "grader.h"
using namespace std;

#define fs first
#define sc second
#define mp make_pai
#define FOR(i, j, k) for (int i = j, Z = k; i < Z; i++)
mt19937 rnd(39393939);

void solve(int n) {
    if (n <= 50) {
        map<int, int> M;
        FOR(i, 1, n + 1) {
            int x = kth(i);
            if (++M[x] > n / 3) {
                say_answer(x);
                return;
            }
        }
        say_answer(-1);
        return;
    }
    vector<int> v;
    set<int> S;
    FOR(i, 1, n + 1) v.push_back(i);
    shuffle(v.begin(), v.end(), rnd);
    while (v.size() > 40) v.pop_back();
    int bound = 60, p = 0;
    while (bound > 0) {
        int id = v[p];
        int x = kth(id);
        bound--;
        if (S.insert(x).sc) {
            int y = cnt(x);
            bound--;
            if (y > n / 3) {
                say_answer(x);
                return;
            }
        }
        if (++p == v.size()) break;
    }
    say_answer(-1);
    return;
}

Compilation message

consul.cpp: In function 'void solve(int)':
consul.cpp:42:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |         if (++p == v.size()) break;
      |             ~~~~^~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 20 ms 344 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 440 KB Output is correct
2 Correct 4 ms 344 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 9 ms 444 KB Output is partially correct
2 Correct 11 ms 452 KB Output is correct
3 Correct 4 ms 448 KB Output is correct
4 Correct 4 ms 444 KB Output is correct
5 Partially correct 9 ms 448 KB Output is partially correct
6 Partially correct 10 ms 448 KB Output is partially correct
7 Partially correct 10 ms 456 KB Output is partially correct
8 Partially correct 12 ms 596 KB Output is partially correct
9 Partially correct 10 ms 448 KB Output is partially correct
10 Correct 11 ms 704 KB Output is correct
11 Correct 10 ms 444 KB Output is correct
12 Correct 9 ms 600 KB Output is correct
13 Correct 11 ms 452 KB Output is correct
14 Correct 11 ms 660 KB Output is correct