Submission #1347550

#TimeUsernameProblemLanguageResultExecution timeMemory
1347550hmms127Counting Mushrooms (IOI20_mushrooms)C++20
0 / 100
0 ms352 KiB
#include "mushrooms.h"

int count_mushrooms(int n) {
	int cnt=1;
	if (n==2) {
		cnt+=1-use_machine({0,1});
		return cnt;
	}
	int a[3]={1,1-use_machine({0,1}),1-use_machine({0,2})};
	int sm=(a[0]!=a[1])+(a[1]!=a[2]);
	cnt+=a[1]+a[2];
	int cur=3;
	for (int i=3;i<n-1;i+=2) {
		int ans=use_machine({a[0],a[1],a[2],i,i+1});
		if (ans-sm==0&&a[2]==1)cnt+=2;
		else if (ans-sm==1) {
			if (a[2]==0)cnt+=2;
		}
		else if (ans-sm==2) {
			cnt++;
		}
		cur+=2;
	}
	if (cur==n-1)cnt+=1-use_machine({0,n-1});
	return cnt;
	
	
	

}
#Verdict Execution timeMemoryGrader output
Fetching results...