#include "mushrooms.h"
#include <bits/stdc++.h>
using namespace std;
const int B=200;
int count_mushrooms(int n) {
vector<int> cnt[4];
cnt[0].push_back(0);
int p=min(n,B);
for(int i=1;i<p;i++)
{
cnt[use_machine({0,i})].push_back(i);
}
int ans=cnt[0].size();
for(int i=p;i<n;)
{
bool flp=0;
if(cnt[0].size()<cnt[1].size())
{
flp=1;
}
vector<int> cur;
int sz=min((int)(cnt[flp].size()),n-i);
for(int j=0;j<sz;j++)
{
cur.push_back(i+j),cur.push_back(cnt[flp][j]);
}
int xp=0;
if(flp)
{
xp=((use_machine(cur)+1)/2);
}
else
{
xp=(sz-((use_machine(cur)+1)/2));
}
if(xp==0)
{
// none is equal to one all are B
for(int j=0;j<sz;j++)
{
cnt[1].push_back(i+j);
}
}
if(xp==sz)
{
// all are A
for(int j=0;j<sz;j++)
{
cnt[0].push_back(i+j);
}
}
ans+=xp;
i+=sz;
}
return ans;
}