#include <bits/stdc++.h>
using namespace std;
using ll = int; using pii = pair<ll,ll>;
#include "mushrooms.h"
ll count_mushrooms(ll N) {
queue<ll> left;
ll nA=0;
vector<ll> va,vb; //vectors of known
va.push_back(0);
for (ll i=1;i<N;i++) {
left.push(i);
}
while (left.size()!=0) {
ll MXS = max(va.size(),vb.size());
MXS = min(MXS,(ll)left.size());
if (vb.size()>=va.size()) {
vector<ll> vuse;
for (ll i=0;i<MXS;i++) {
vuse.push_back(vb[i]);
vuse.push_back(left.front());
left.pop();
}
ll y = use_machine(vuse);
nA += (y/2);
if (y%2==0) {
vb.push_back(vuse.back());
} else {
va.push_back(vuse.back());
}
} else {
vector<ll> vuse;
for (ll i=0;i<MXS;i++) {
vuse.push_back(va[i]);
vuse.push_back(left.front());
left.pop();
}
ll y = use_machine(vuse);
nA += MXS-1-(y/2);
if (y%2==1) {
vb.push_back(vuse.back());
} else {
va.push_back(vuse.back());
}
}
}
return (va.size()+nA);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |