Submission #621028

#TimeUsernameProblemLanguageResultExecution timeMemory
621028KLPPCounting Mushrooms (IOI20_mushrooms)C++14
56.93 / 100
11 ms336 KiB
#include "mushrooms.h" #include<bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i=a;i<b;i++) #define trav(a,v) for(auto a:v) typedef long long int lld; int K; int answer[1000]; int count_mushrooms(int n) { K=min(200,n-1); vector<int> zeros; vector<int> ones; answer[0]=0; zeros.push_back(0); rep(i,1,K+1){ vector<int> V; V.push_back(0); V.push_back(i); int u=use_machine(V); answer[i]=u; if(u==1)ones.push_back(i); else zeros.push_back(i); } int revert=false; if(zeros.size()<ones.size()){ swap(zeros,ones); revert=true; } vector<int> analyse; int cnt=0; int ans=0; rep(i,0,K+1)ans+=(answer[i]==0); rep(i,K+1,n){ analyse.push_back(i); analyse.push_back(zeros[cnt]); //cout<<zeros[cnt]<<endl; cnt++; if(i==n-1 || cnt==zeros.size()){ //cout<<cnt<<" "<<zeros.size()<<endl; int u=use_machine(analyse); if(u%2==1)u++; if(revert){ ans+=u/2; }else{ ans+=analyse.size()/2-u/2; } analyse.clear(); cnt=0; } } return ans; }

Compilation message (stderr)

mushrooms.cpp: In function 'int count_mushrooms(int)':
mushrooms.cpp:38:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |   if(i==n-1 || cnt==zeros.size()){
      |                ~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...