#include <bits/stdc++.h>
#include "mushrooms.h"
using namespace std;
int count_mushrooms(int n) {
int ans = 1;
int posA = -1;
vector<int> pb;
int lasti;
if(n < 4){
for(int i = 1; i < n; i++){
ans += use_machine({0, i}) ^ 1;
}
return ans;
}
lasti = 1;
for(int i = 1; i < min(n, 3); i++){
lasti++;
if(use_machine({0, i})){
pb.push_back(i);
continue;
}
ans++;
posA = i;
break;
}
int pos1, pos2;
bool haya = false;
if(posA != -1){
pos1 = 0;
pos2 = posA;
haya = true;
} else {
pos1 = pb[0];
pos2 = pb[1];
}
if((n - lasti) % 2){
ans += (use_machine({0, lasti}) ? 0 : 1);
lasti++;
}
for(int i = lasti; i < n; i += 2){
int x = use_machine({pos1, i, pos2, i + 1});
if(haya){
if(!x) ans += 2;
else if(x < 3) ans += 1;
continue;
}
if(x == 3) ans += 2;
else if(x) ans += 1;
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |