#include "mushrooms.h"
#include <bits/stdc++.h>
using namespace std;
const int Q = 200;
int n;
vector<int> findKnowns() {
	vector<int> ret_A = {0}, ret_B;
	for (int i = 1; i < min(n, Q); i++) {
		if (use_machine(vector<int>{0, i})) ret_B.push_back(i);
		else ret_A.push_back(i);
	}
	return (ret_A.size() > ret_B.size() ? ret_A : ret_B);
}
int count_mushrooms(int N) {
	n = N;
	vector<int> known = findKnowns();
	int k = known.size(), cnt = (known[0] ? Q - k : k);
	for (int i = Q; i < n; i += k) {
		vector<int> v;
		for (int j = i; j < min(n, i + k); j++) {
			v.push_back(known[j - i]), v.push_back(j);
		}
		int c = use_machine(v);
		if (v[0]) { // B 
			cnt += c % 2;
			cnt += c / 2;
		} else { // A
			cnt += !(c % 2);
			cnt += (min(n, i + k) - i - 1) - (c / 2);
		}
	}
	return cnt;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |