# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
346041 | lLab_ | Counting Mushrooms (IOI20_mushrooms) | C++14 | 0 ms | 0 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;
set<int> A = {0};
set<int> B;
int N;
bool ia[20020];
int cu = 1;
int recur(){
int ns = A.size()*2;
int i=0;
int nA = A.size();
int S[min(nA*2,N-nA-cu+1)];
for(auto u:A){
S[i] = u;
i+=2;
}
i = 1;
for(int j=cu;j<min(cu+nA,N);++j){
if(!ia[j]){
S[i] = j;
i+=2;
}
}
cu = cu+nA;
int ty = use_machine(*S);
if(ty%2 == 1){
A.insert(ns-1);
ia[ns-1] = true;
}
return ns-((ty+1)/2)-nA;
}
int count_mushrooms(int n) {
N = n;
ia[0] = true;
int sum = 1;
while(cu < n){
sum += recur();
}
return sum;
}