#include "bits/stdc++.h"
#define pb push_back
using namespace std;
#include "toxic.h"
void determine_type(int n){
vector<int> strong, rem;
int ft = -1, l = 1, r = n;
while(l < r){
int m = (l + r)/2;
vector<int> vec;
for(int i = l; i <= m; i++){
vec.pb(i);
}
int check = query_sample(vec);
if(check != (m - l + 1)) r = m;
else l = m + 1;
}
ft = l;
for(int i = 1; i <= n; i += 7){
vector<int> vec;
vec.pb(ft);
int crp = 1;
for(int j = i; j <= min(n, i + 6); j++){
for(int k = 0; k < crp; k++) vec.pb(j);
crp *= 2;
}
int x = query_sample(vec);
crp = 1;
for(int j = i; j <= min(n, i + 6); j++){
if(x & crp) strong.pb(j);
else rem.pb(j);
crp *= 2;
}
}
vector<int> tox, reg;
for(auto itr: rem){
vector<int> solo = {itr};
int x = query_sample(solo);
if(x) reg.pb(itr);
else tox.pb(itr);
}
for(auto itr: reg){
answer_type(itr, 'R');
}
for(auto itr: tox){
answer_type(itr, 'T');
}
for(auto itr: strong){
answer_type(itr, 'S');
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |