Submission #411735

#TimeUsernameProblemLanguageResultExecution timeMemory
411735SuhaibSawalha1Counting Mushrooms (IOI20_mushrooms)C++17
0 / 100
7 ms200 KiB
#include "mushrooms.h"
#include <bits/stdc++.h>
using namespace std;

int count_mushrooms(int n) {
	int ans = 0;
	vector<int> a[2], v(n - 1);
	iota(v.begin(), v.end(), 1);
	a[0] = {0};
	for (int i = 1; i < min(n, 220); ++i) {
		a[use_machine({0, v.back()})].push_back(v.back());
		v.pop_back();
	}
	int ind = a[1].size() >= 101;
	while (v.size()) {
		int use = min((int)v.size(), 100);
		vector<int> ask;
		for (int i = 0; i < use + 1; ++i) {
			if (i & 1) {
				ask.push_back(v.back());
				v.pop_back();
			}
			else {
				ask.push_back(a[ind][i / 2]);
			}
		}
		if (ind) {
			ans += use_machine(ask) / 2;
		}
		else {
			ans += use - use_machine(ask) / 2;
		}
	}
	return ans + a[0].size();
}
#Verdict Execution timeMemoryGrader output
Fetching results...