제출 #615918

#제출 시각아이디문제언어결과실행 시간메모리
615918fvogel499버섯 세기 (IOI20_mushrooms)C++17
56.93 / 100
17 ms1244 KiB
#include "mushrooms.h"
#include <bits/stdc++.h>

using namespace std;

#define vi vector<int>
#define sz(x) (int)((x).size())
#define ins insert

int count_mushrooms(int n) {
	vector<int> aType, bType;
	aType.push_back(0);
	int curElem = 1;
	while (sz(aType) < 100 && sz(bType) < 100 && curElem < n) {
		if (use_machine({0, curElem}) == 0) {
			aType.push_back(curElem);
		}
		else {
			bType.push_back(curElem);
		}
		curElem++;
	}
	bool sw = false;
	if (sz(bType) > sz(aType)) {
		swap(aType, bType);
		sw = true;
	}
	set<int> se;
	for (int i = 0; i < n; i++) se.ins(i);
	for (int i : aType) se.erase(i);
	int different = 0;
	while (!se.empty()) {
		vi loc;
		while (!se.empty() && sz(loc) < sz(aType)) {
			loc.push_back(*se.begin());
			se.erase(se.begin());
		}
		vi gen;
		for (int i = 0; i < sz(loc); i++) {
			gen.push_back(loc[i]);
			gen.push_back(aType[i]);
		}
		int lr = use_machine(gen);
		different += (lr+1)/2;
	}
	if (!sw) {
		different = n-different;
	}
	else {
		
	}
	return different;
}
#Verdict Execution timeMemoryGrader output
Fetching results...