제출 #619130

#제출 시각아이디문제언어결과실행 시간메모리
619130MilosMilutinovic버섯 세기 (IOI20_mushrooms)C++14
0 / 100
5 ms436 KiB
#include "mushrooms.h" #include <bits/stdc++.h> using namespace std; int Q = 0; int ask(vector<int> qv) { ++Q; assert(Q <= 500); return use_machine(qv); } int count_mushrooms(int n) { vector<vector<int>> ids(2); ids[0].push_back(0); int ans = 1; for (int i = 1; i < n; i++) { if (ids[0].size() > ids[1].size()) { vector<int> qv(1, ids[0][0]); int k = min(n, i + (int) ids[0].size()); for (int j = i; j < k; j++) { qv.push_back(j); if (j != k - 1) { qv.push_back(ids[0][j - i + 1]); } } int cc = ask(qv); if (cc % 2 == 1) { ids[1].push_back(qv.back()); } ans += (k - i) - (cc + 1) / 2; i = k - 1; } else { vector<int> qv(1, ids[1][0]); int k = min(n, i + (int) ids[1].size()); for (int j = i; j < k; j++) { qv.push_back(j); if (j != k - 1) { qv.push_back(ids[1][j - i + 1]); } } int cc = ask(qv); if (cc % 2 == 1) { ids[0].push_back(qv.back()); } ans += (cc + 1) / 2; i = k - 1; } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...