Submission #1296211

#TimeUsernameProblemLanguageResultExecution timeMemory
1296211eri16Counting Mushrooms (IOI20_mushrooms)C++20
0 / 100
1 ms400 KiB
#include "mushrooms.h" #include <bits/stdc++.h> using namespace std; int count_mushrooms(int n){ vector <int> A; vector <int> B; int ans=1; int cur=150; A.push_back(0); vector <int> cl; for (int i=1; i<3 && i<n; i++){ vector <int> test; test.push_back(0); test.push_back(i); if (use_machine(test)==0){ A.push_back(i); ans++; } else{ B.push_back(i); } } if (A.size()>B.size()){cl=A;} else{cl=B;} for (int i=3; i<150 && i<n; i++){ vector <int> test; test.push_back(cl[0]); test.push_back(i); int kk=0; if (i+1<150 && i+1<n){kk=1; test.push_back(cl[1]); test.push_back(i+1);} int tmans=use_machine(test); if (kk==0){ if (cl[0]==0){ if (tmans==0){A.push_back(i);ans++;} else{B.push_back(i);} } else{ if (tmans==1){A.push_back(i);ans++;} else{B.push_back(i);} }} else{ if (cl[0]==0){ if (tmans==0){A.push_back(i);A.push_back(i+1);ans=ans+2;} else if (tmans==1){A.push_back(i);B.push_back(i+1);ans=ans+1;} else if (tmans==2){B.push_back(i);A.push_back(i+1);ans=ans+1;} else {B.push_back(i);B.push_back(i+1);} } else{ if (tmans==3){A.push_back(i);A.push_back(i+1);ans=ans+2;} else if (tmans==2){A.push_back(i);B.push_back(i+1);ans=ans+1;} else if (tmans==1){B.push_back(i);A.push_back(i+1);ans=ans+1;} else {B.push_back(i);B.push_back(i+1);} } } } vector <int> c; if (A.size()>B.size()){c=A;} else{c=B;} while (cur<n){ vector <int> test; int prv=cur; for (int i=0; i<75 && cur<n; i++){ test.push_back(cur); test.push_back(c[i]); cur++; } int tmans=use_machine(test); if (c[0]==0){ if (tmans%2==0){ans++;} ans=ans+(cur-prv-1)-tmans/2; } else{ if (tmans%2==1){ans++;} ans=ans+tmans/2; } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...