Submission #1210082

#TimeUsernameProblemLanguageResultExecution timeMemory
1210082That_SalamanderCounting Mushrooms (IOI20_mushrooms)C++20
56.78 / 100
3 ms412 KiB
#include "mushrooms.h" using namespace std; #define START 101 /* 2 * START + (n - 2 * START) / (START - 1) */ int count_mushrooms(int n) { vector<int> knownAs, knownBs; knownAs.push_back(0); int pos = 1; while (pos < n && knownAs.size() < START && knownBs.size() < START) { int res = use_machine({0, pos}); if (res == 0) knownAs.push_back(pos); else knownBs.push_back(pos); pos++; } int res = knownAs.size(); while (pos < n) { int mushroomsInQuery = min(START - 1, n - pos); vector<int> query; bool isA = knownAs.size() >= START; for (int i = 0; i < mushroomsInQuery; i++) { if (isA) { query.push_back(knownAs[i]); } else { query.push_back(knownBs[i]); } query.push_back(pos++); } if (isA) { query.push_back(knownAs[mushroomsInQuery]); } else { query.push_back(knownBs[mushroomsInQuery]); } int qres = use_machine(query) / 2; if (isA) { res += mushroomsInQuery - qres; } else { res += qres; } } return res; } /* B_B_B_B_B */
#Verdict Execution timeMemoryGrader output
Fetching results...