Submission #346047

#TimeUsernameProblemLanguageResultExecution timeMemory
346047lLab_Counting Mushrooms (IOI20_mushrooms)C++14
0 / 100
1 ms492 KiB
#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)];
    vector<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;
}
#Verdict Execution timeMemoryGrader output
Fetching results...