Submission #884540

#TimeUsernameProblemLanguageResultExecution timeMemory
884540jamjanekCounting Mushrooms (IOI20_mushrooms)C++14
80.71 / 100
6 ms968 KiB
#include<bits/stdc++.h>
#include "mushrooms.h"
using namespace std;

int count_mushrooms(int n){
	vector<int>A[2];
	A[0].push_back(0);
	int it = 1;
	int Ac[2] = {1,0};
	Ac[0] = 1;
	Ac[1] = 0;
	while(it<n){
//		printf("it = %d\n", it);
		vector<int>pom;
		bool czy = 0;
		if(A[1].size()>A[0].size())czy = 1;
		int pom1 = 0;
		while(it<n && pom.size()<2*A[czy].size()){
			pom.push_back(A[czy][pom1++]);
			pom.push_back(it);
			it++;
		}
		int ans = use_machine(pom);
//		printf("vec: = ");for(auto j: pom)printf("%d ", j);printf("\n");
//		printf("ans = %d\n", ans);
		if(ans%2==0)
			A[czy].push_back(it-1);
		else
			A[!czy].push_back(it-1);
		Ac[!czy]+=(ans+1)/2;
		Ac[czy]+=pom1-(ans+1)/2;
		if(pom1==2){
			if(ans<2)
				A[czy].push_back(it-2);
			else
				A[!czy].push_back(it-2);
		}
	}
//	printf("res = %d\n", Ac[0]);
	return Ac[0];
}
#Verdict Execution timeMemoryGrader output
Fetching results...