Submission #1230475

#TimeUsernameProblemLanguageResultExecution timeMemory
1230475badge881Counting Mushrooms (IOI20_mushrooms)C++20
0 / 100
0 ms420 KiB
#include <bits/stdc++.h> using namespace std; int use_machine(vector<int>); int count_mushrooms(int n) { pair<int, int> posequals; bool isequal0 = true; int a = use_machine({0, 1}); if (n == 2) return 2 - a; if (a == 0) posequals = {0, 1}; else { a = use_machine({0, 2}); if (a == 0) posequals = {0, 2}; else posequals = {1, 2}, isequal0 = false; } int ans = 1 + isequal0; for (int i = 2 + (posequals.second == 2); i < n; i++) { if (isequal0) { if (i == n - 1) ans += __builtin_popcount(use_machine({posequals.first, i, posequals.second})); else ans += __builtin_popcount(use_machine({posequals.first, i, posequals.second, i + 1})); } else { if (i == n - 1) ans += 1 - __builtin_popcount(use_machine({posequals.first, i, posequals.second})); else ans += 2 - __builtin_popcount(use_machine({posequals.first, i, posequals.second, i + 1})); } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...