Submission #828655

#TimeUsernameProblemLanguageResultExecution timeMemory
828655Minindu206Counting Mushrooms (IOI20_mushrooms)C++14
0 / 100
0 ms208 KiB
#include "mushrooms.h" #include <bits/stdc++.h> using namespace std; int count_mushrooms(int n) { vector<int> posa, posb, pos; int acnt = 1, bcnt = 0, cnt, ans = 0; posa.push_back(0); for (int i = 1; i < min(200, n); i++) { int cur = use_machine({0, i}); if (cur == 0) { if(acnt < 10) posa.push_back(i); acnt++; } else { if(bcnt < 10) posb.push_back(i); bcnt++; } } if (n <= 200) { return n - ans; } if (acnt >= bcnt) pos = posa, cnt = acnt; else pos = posb, cnt = bcnt; int i = 200; while (i < n) { vector<int> chk; int cur = 0; while (i < min(n, i + cnt)) { chk.push_back(i); chk.push_back(pos[cur]); cur++; i++; } int ncur = use_machine(chk); if (acnt >= bcnt) ans += (ncur + 1) / 2; else ans += (cur - ((ncur + 1) / 2)); } return n - ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...