# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
721477 | vjudge1 | Counting Mushrooms (IOI20_mushrooms) | C++17 | 5 ms | 208 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "mushrooms.h"
#include <bits/stdc++.h>
using namespace std;
#define N '\n';
#define VI <vector <int>>
#define VVI <vector <vector <int>>>
int count_mushrooms(int n){
int cnt = 1;
if(n <= 226){
for(int i = 1; i < n; i++){
cnt += 1 - use_machine({0, i});
}
return cnt;
}
vector <int> As = {0};
vector <int> Bs;
int unt = 10;
for(int i = 1; i < unt; i++){
bool q = use_machine({0,i});
if(q)
Bs.push_back(i);
else
As.push_back(i);
}
cnt += As.size()-1;
int i = unt;
if(As.size() >= Bs.size()){
for(; i < n;){
vector<int> search;
int j = 0;
for(; j < As.size() && i < n; j++ ){
search.push_back(i);
search.push_back(As[j]);
i++;
}
int q = use_machine(search);
cnt += (j+1) - ((q/2) +(q % 2));
}
}
else{
for(; i < n; ){
vector<int> search;
for(int j = 0; j < Bs.size() && i < n; j++){
search.push_back(i);
search.push_back(Bs[j]);
i++;
}
int q = use_machine(search);
cnt += q/2 + q % 2;
}
}
// B A B A B A
// B A A A B A B A
return cnt;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |