제출 #796942

#제출 시각아이디문제언어결과실행 시간메모리
796942vjudge1버섯 세기 (IOI20_mushrooms)C++17
0 / 100
0 ms208 KiB
#include "mushrooms.h" #include<bits/stdc++.h> using namespace std; #define X 137 int count_mushrooms(int n) { if(n<500) { int ans = 0; n--; for(int i = 1; i <= n/2;i++) ans+=use_machine({i*2-1,0,i*2}); if(n%2) ans+=use_machine({0,n-1}); return n+1-ans; } exit(1); vector<int> good; int second = 0; if(!use_machine({0,1})) second = 1, good.push_back(1); if(!use_machine({0,2})) second = 2, good.push_back(2); if(!second) good = {1,2}; else good.push_back(0); for(int i = 3; i < 2*X-1; i+=2) { int res = use_machine({i,good[0],i+1,good[1]}); if(res%2-1) good.push_back(i); if(res<2) good.push_back(i+1); } int ans = 0; for(int i = 2*X-1; i < n; i+=good.size()) { int r = min(n, i+(int)good.size()); vector<int> v; for(int j = i; j < r; j++) { v.push_back(j); v.push_back(good[j-i]); } int x = use_machine(v); ans+=x%2; ans+=x/2; } ans = n-2*X+1-ans+good.size(); if(second) return ans; return n - ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...