Submission #1018121

#TimeUsernameProblemLanguageResultExecution timeMemory
1018121BoasCounting Mushrooms (IOI20_mushrooms)C++17
0 / 100
1 ms344 KiB
#include <bits/stdc++.h> using namespace std; #include "mushrooms.h" #define loop(x, i) for (int i = 0; i < x; i++) #define pb push_back #define ALL(x) (x).begin(), (x).end() typedef vector<int> vi; typedef pair<int, int> ii; typedef set<int> si; typedef vector<vi> vvi; int count_mushrooms(int n) { vi A = {0}, B; int c1 = use_machine({0, 1}); int i = 2; if (c1 == 1) { B.pb(1); int c2 = use_machine({1, 2}); i++; if (c2 == 1) A.pb(2); else B.pb(2); } else { A.pb(1); } if (A.size() >= 2) { while (1) { if (i + 1 >= n) break; int res = use_machine({A[0], i, A[1], i + 1}); if (res == 0) { A.pb(i); A.pb(i + 1); } else if (res == 1) { A.pb(i); } else if (res == 2) { A.pb(i + 1); } if (i + 3 < n) i += 2; else break; } } else { while (1) { if (i + 1 >= n) break; int res = use_machine({B[0], i, B[1], i + 1}); if (res == 3) { A.pb(i); A.pb(i + 1); } else if (res == 2) { A.pb(i); } else if (res == 1) { A.pb(i + 1); } if (i + 3 < n) i += 2; else break; } } if (i < n) { if (use_machine({0, i}) == 0) A.pb(i); } return A.size(); }
#Verdict Execution timeMemoryGrader output
Fetching results...