Submission #781039

#TimeUsernameProblemLanguageResultExecution timeMemory
781039Josia버섯 세기 (IOI20_mushrooms)C++17
0 / 100
2 ms256 KiB
#include "mushrooms.h"
#include <bits/stdc++.h>
using namespace std;

int count_mushrooms(int n) {
	vector<int> is = {0}, isnot;

	int pos = 1;
	while(pos < n && is.size()<100 && isnot.size()<100) {
		if (use_machine({0, pos})) isnot.push_back(pos);
		else is.push_back(pos);

		pos++;
	}

	if (is.size() > isnot.size()) {
		vector<int> check;
		int res = is.size();
		for (int i = pos; i<n; i+=is.size()) {
			for (int j = i; j<min(n, (int)(i+is.size())); j++) {
				check.push_back(is[j-i]);
				check.push_back(j);
			}
		}
		int ans;
		if (check.empty()) ans = 0;

		else ans = use_machine(check);

		res += (ans+1)/2;
		return res;
	}

	else {
		vector<int> check;
		int res = isnot.size();
		for (int i = pos; i<n; i+=isnot.size()) {
			for (int j = i; j<min(n, (int)(i+isnot.size())); j++) {
				check.push_back(isnot[j-i]);
				check.push_back(j);
			}
		}
		int ans;
		if (check.empty()) ans = 0;

		else ans = use_machine(check);

		res += (ans+1)/2;
		res = n-res;
		return res;
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...