Submission #1184931

#TimeUsernameProblemLanguageResultExecution timeMemory
1184931SalihSahinToxic Gene (NOI23_toxic)C++20
8.68 / 100
4 ms328 KiB
#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 timeMemoryGrader output
Fetching results...