Submission #346069

#TimeUsernameProblemLanguageResultExecution timeMemory
346069TheerapakG버섯 세기 (IOI20_mushrooms)C++17
0 / 100
1 ms492 KiB
#include "mushrooms.h" #include <bits/stdc++.h> using namespace std; vector<int> vec[2]; int count_mushrooms(int n) { if(n<3) return 2-use_machine({0, 1}); else { vec[0].push_back(0); vec[use_machine({0, 1})].push_back(1); vec[use_machine({0, 2})].push_back(2); int s = vec[0].size(); for(int i=3;i<n;) { int use = vec[0].size()>vec[1].size()?0:1; vector<int> query; for(auto it=vec[use].begin(); i<n&&it!=vec[use].end(); i++, it++) { query.push_back(*it); query.push_back(i); } int ans = use_machine(query); // if(ans < 2) for(auto it = ++query.begin(); ++it!=query.end(); it+=2) vec[use].push_back(*it); if(query.size()==4) { if(ans>2) vec[!use].push_back(query[1]); else vec[use].push_back(query[1]); } if(ans%2==0) vec[use].push_back(i-1); // last one is same else vec[!use].push_back(i-1); // last one is NOT same if(use==0) s+= (query.size()-ans)/2; else s+= (ans+1)/2; } return s; } }
#Verdict Execution timeMemoryGrader output
Fetching results...