Submission #1214876

#TimeUsernameProblemLanguageResultExecution timeMemory
1214876Math4Life2020Counting Mushrooms (IOI20_mushrooms)C++20
80.71 / 100
3 ms516 KiB
#include <bits/stdc++.h> using namespace std; using ll = int; using pii = pair<ll,ll>; #include "mushrooms.h" ll count_mushrooms(ll N) { queue<ll> left; ll nA=0; vector<ll> va,vb; //vectors of known va.push_back(0); for (ll i=1;i<N;i++) { left.push(i); } while (left.size()!=0) { ll MXS = max(va.size(),vb.size()); MXS = min(MXS,(ll)left.size()); if (vb.size()>=va.size()) { vector<ll> vuse; for (ll i=0;i<MXS;i++) { vuse.push_back(vb[i]); vuse.push_back(left.front()); left.pop(); } ll y = use_machine(vuse); nA += (y/2); if (y%2==0) { vb.push_back(vuse.back()); } else { va.push_back(vuse.back()); } } else { vector<ll> vuse; for (ll i=0;i<MXS;i++) { vuse.push_back(va[i]); vuse.push_back(left.front()); left.pop(); } ll y = use_machine(vuse); nA += MXS-1-(y/2); if (y%2==1) { vb.push_back(vuse.back()); } else { va.push_back(vuse.back()); } } } return (va.size()+nA); }
#Verdict Execution timeMemoryGrader output
Fetching results...