Submission #314835

#TimeUsernameProblemLanguageResultExecution timeMemory
314835kostia244Counting Mushrooms (IOI20_mushrooms)C++17
56.64 / 100
11 ms392 KiB
#include "mushrooms.h"
#include<bits/stdc++.h>
using namespace std;
const int C = 205;
int count_mushrooms(int n) {
	vector<int> a{0}, b;
	for(int i = 1; i < min(n, C); i++) {
		(use_machine({0, i}) ? b : a).push_back(i);
	}
	int acc = a.size(), T = 0;
	if(a.size() < b.size()) swap(a, b), T = 1;
	for(int pos = C; pos < n;) {
		vector<int> cur;
		for(int i = 0; i < a.size(); i++) {
			if(i && pos < n) cur.push_back(pos++);
			cur.push_back(a[i]);
		}
		//for(auto i : cur) cout << i << " "; cout << endl;
		int t = use_machine(cur);
		acc += T ? (t/2) : ((cur.size() - a.size()) - t/2);
		//cout << acc << endl;
	}
	return acc;
}

Compilation message (stderr)

mushrooms.cpp: In function 'int count_mushrooms(int)':
mushrooms.cpp:14:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |   for(int i = 0; i < a.size(); i++) {
      |                  ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...