Submission #1353632

#TimeUsernameProblemLanguageResultExecution timeMemory
1353632ezzzayToxic Gene 2 (NOI24_toxic)C++20
0 / 100
4 ms440 KiB
#include "toxic.h"
#include<bits/stdc++.h>
using namespace std;
#define pb push_back
void determine_type(int n) {
    vector<int>idxs(n);
    for(int i=0;i<n;i++)idxs[i]=i;
   
   vector<char>ans(n);
   for(int i=0;i<n;i++){
       ans[i]='R';
   }
   vector<int>vec;
   int idx=0;
   for(int i=0;i<n;i+=7){
        vector<int>vc;
        for(int j=0;j<7;j++){
            if(i+j<n){
            	for(int h=0;h<(1<<j);h++)vc.pb(idxs[i+j]);
            }
        }
        vector<int>p=query_machine(vc);
        int msk=p.back(); 
        if(msk==127)continue;
        for(int j=0;j<7;j++){
            if(msk& (1<<j)){
            	ans[idxs[i+j]]='T';
            }
        }
    }
   for(int i=0;i<n;i+=8){
        vector<int>vc;
        for(int j=0;j<8;j++){
            if(i+j<n){
            	for(int h=0;h<(1<<j);h++)vc.pb(idxs[i+j]);
            }
        }
        vector<int>p=query_machine(vc);
        int msk=p.back(); 
        if(msk==255){
            vec.pb(i);
            // i dah block
            continue;
        }
        for(int j=0;j<8;j++){
            if(msk& (1<<j)){
            	ans[idxs[i+j]]='T';
            }
        }
    }
    
    for(auto p:vec){
        vector<int>vc=query_machine({p,idx});
        if(vc[0]==2){
            for(int j=0;j<8;j++){
                if(p+j<n)ans[idxs[p+j]]='T';
            }
        }
    }
    answer_type(ans);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...