Submission #885243

#TimeUsernameProblemLanguageResultExecution timeMemory
885243epicci23Counting Mushrooms (IOI20_mushrooms)C++17
45.38 / 100
6 ms600 KiB
#include "mushrooms.h" #include "bits/stdc++.h" using namespace std; typedef long long ll; #define pb push_back #define sz(x) ((int)(x).size()) const int BL = 100; int count_mushrooms(int n){ int ans=1; vector<int> ind_a,ind_b; ind_a.pb(0); for(int i=1;i<=min(n-1,BL);i++){ int xd = use_machine({0,i}); if(xd==0){ ans++; ind_a.pb(i); } else{ ind_b.pb(i); } } if(n-1<=BL) return ans; int xd = max(sz(ind_a),sz(ind_b)); for(int i=BL+1;i<n;i+=xd-1){ vector<int> que; for(int j=i;j<min(n,i+xd-1);j++) que.pb(j); if(sz(ind_a)>=sz(ind_b)){ vector<int> haha; haha.pb(ind_a[0]); for(int j=0;j<sz(que);j++){ haha.pb(que[j]); haha.pb(ind_a[j+1]); } int res = use_machine(haha); ans += sz(que) - res/2; } else{ vector<int> haha; haha.pb(ind_b[0]); for(int j=0;j<sz(que);j++){ haha.pb(que[j]); haha.pb(ind_b[j+1]); } int res = use_machine(haha); ans += res/2; } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...