제출 #1296205

#제출 시각아이디문제언어결과실행 시간메모리
1296205eri16버섯 세기 (IOI20_mushrooms)C++20
54.59 / 100
4 ms428 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[1]); test.push_back(i); int tmans=use_machine(test); 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);} } } 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...