# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
721440 | vjudge1 | Counting Mushrooms (IOI20_mushrooms) | C++17 | 2 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;
if(As.size() >= Bs.size()){
for(int i = unt; i + As.size() < n; i+= As.size()){
vector<int> search;
for(int j = 0, i2 = i; j < As.size(); j++, i2++){
search.push_back(i);
search.push_back(As[j]);
}
int q = use_machine(search);
cnt += As.size()- q/2 + q % 2;
}
}
else{
for(int i = unt; i + Bs.size() < n; i+= Bs.size()){
vector<int> search;
for(int j = 0, i2 = i; j < Bs.size(); j++, i2++){
search.push_back(i);
search.push_back(Bs[j]);
}
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... |