Submission #800632

#TimeUsernameProblemLanguageResultExecution timeMemory
800632FEDIKUSCounting Mushrooms (IOI20_mushrooms)C++17
56.93 / 100
8 ms436 KiB
#include "mushrooms.h"
#include <bits/stdc++.h>

using namespace std;

const int maxn=20010;

int count_mushrooms(int n) {
	vector<int> aovi={0};
	vector<int> bovi;
	int w=100;
	int ret=0;
	for(int i=1;i<n;i++){
		if(aovi.size()>=w && aovi.size()>=bovi.size()){
			vector<int> tmp;
			for(int j=i;j<min(i+w,n);j++){
				tmp.push_back(aovi[j-i]);
				tmp.push_back(j);
			}
			int klkb=use_machine(tmp);
			if(klkb&1) bovi.push_back(tmp.back());
			else aovi.push_back(tmp.back()); 
			klkb=klkb/2+(klkb&1);
			int klka=tmp.size()/2-klkb;
			ret+=klka;
			i+=w-1;
			continue;
		}
		if(bovi.size()>=w){
			vector<int> tmp;
			for(int j=i;j<min(i+w,n);j++){
				tmp.push_back(bovi[j-i]);
				tmp.push_back(j);
			}
			int klka=use_machine(tmp);
			if(klka&1) aovi.push_back(tmp.back());
			else bovi.push_back(tmp.back());
			klka=klka/2+(klka&1);
			ret+=klka;
			i+=w-1;
			continue;
		}
		if(use_machine({0,i})==0) aovi.push_back(i);
		else bovi.push_back(i);
		ret=aovi.size();
	}
	return ret;
}

Compilation message (stderr)

mushrooms.cpp: In function 'int count_mushrooms(int)':
mushrooms.cpp:14:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   14 |   if(aovi.size()>=w && aovi.size()>=bovi.size()){
      |      ~~~~~~~~~~~^~~
mushrooms.cpp:29:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   29 |   if(bovi.size()>=w){
      |      ~~~~~~~~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...