# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
615918 | fvogel499 | Counting Mushrooms (IOI20_mushrooms) | C++17 | 17 ms | 1244 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |