제출 #1072857

#제출 시각아이디문제언어결과실행 시간메모리
1072857Ignut버섯 세기 (IOI20_mushrooms)C++17
56.78 / 100
7 ms600 KiB
// Ignut

#include <bits/stdc++.h>

using namespace std;
using ll = long long;
using ld = long double;

int use_machine(vector<int> x);

int count_mushrooms(int n) {
    int res = 1;
    vector<int> A = {0}, B = {};
    vector<int> vec;
    for (int i = 1; i < n; i ++) vec.push_back(i);
    int Q = 200;
    for (int i = 0; i < Q; i ++) {
        if (vec.empty()) {
            return res;
        }
        int v = vec.back(); vec.pop_back();
        if (use_machine({0, v}) == 0) {
            res ++;
            A.push_back(v);
        }
        else {
            B.push_back(v);
        }
    }
    while (!vec.empty()) {
        int ind = 1;
        vector<int> ask = {(A.size() >= B.size() ? A[0] : B[0])};
        while (ind < max(A.size(), B.size()) && !vec.empty()) {
            int v = vec.back(); vec.pop_back();
            ask.push_back(v);
            ask.push_back(A.size() >= B.size() ? A[ind] : B[ind]);
            ind ++;
        }
        int val = use_machine(ask);
        int cnt = ind - 1;
        if (A.size() >= B.size())
            res += cnt - val / 2;
        else
            res += val / 2;
    }
    return res;
}

컴파일 시 표준 에러 (stderr) 메시지

mushrooms.cpp: In function 'int count_mushrooms(int)':
mushrooms.cpp:33:20: warning: comparison of integer expressions of different signedness: 'int' and 'const long unsigned int' [-Wsign-compare]
   33 |         while (ind < max(A.size(), B.size()) && !vec.empty()) {
      |                ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...