Submission #615918

#TimeUsernameProblemLanguageResultExecution timeMemory
615918fvogel499Counting Mushrooms (IOI20_mushrooms)C++17
56.93 / 100
17 ms1244 KiB
#include "mushrooms.h" #include <bits/stdc++.h> using namespace std; #define vi vector<int> #define sz(x) (int)((x).size()) #define ins insert int count_mushrooms(int n) { vector<int> aType, bType; aType.push_back(0); int curElem = 1; while (sz(aType) < 100 && sz(bType) < 100 && curElem < n) { if (use_machine({0, curElem}) == 0) { aType.push_back(curElem); } else { bType.push_back(curElem); } curElem++; } bool sw = false; if (sz(bType) > sz(aType)) { swap(aType, bType); sw = true; } set<int> se; for (int i = 0; i < n; i++) se.ins(i); for (int i : aType) se.erase(i); int different = 0; while (!se.empty()) { vi loc; while (!se.empty() && sz(loc) < sz(aType)) { loc.push_back(*se.begin()); se.erase(se.begin()); } vi gen; for (int i = 0; i < sz(loc); i++) { gen.push_back(loc[i]); gen.push_back(aType[i]); } int lr = use_machine(gen); different += (lr+1)/2; } if (!sw) { different = n-different; } else { } return different; }
#Verdict Execution timeMemoryGrader output
Fetching results...