제출 #885242

#제출 시각아이디문제언어결과실행 시간메모리
885242epicci23Counting Mushrooms (IOI20_mushrooms)C++17
56.64 / 100
6 ms700 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,2*BL+1);i++){ int xd = use_machine({0,i}); if(xd==0){ ans++; ind_a.pb(i); } else{ ind_b.pb(i); } } if(n-1<=2*BL+1) return ans; int xd = max(sz(ind_a),sz(ind_b)); for(int i=2*BL+2;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...