#include<bits/stdc++.h>
#include "mushrooms.h"
using namespace std;
int firstTrue(int lo, int hi) {
hi++;
while(lo < hi) {
int mid = lo+(hi-lo)/2;
if(lo == mid) return lo+1;
vector<int> cur;
for(int i=lo; i<=mid; i++) cur.push_back(i);
int nbAdj=use_machine(cur);
if(nbAdj >= 1) hi=mid;
else if(nbAdj == hi-lo) return lo+1;
else lo=mid;
}
return lo+1;
}
int count_mushrooms(int n) {
int lo=0, ans=0;
bool a=true;
while(lo != n) {
int lolo=firstTrue(lo, n-1);
if(a) ans+=lolo-lo;
lo=lolo;
a=!a;
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |