제출 #1353631

#제출 시각아이디문제언어결과실행 시간메모리
1353631053thousandToxic Gene 2 (NOI24_toxic)C++20
43 / 100
10 ms448 KiB
#include "toxic.h"
#include<bits/stdc++.h>
using namespace std;
void determine_type(int n) {
	vector<char>as;
	int l=0;
	int r=n-1;
	int dif=0,reg;
	while(l<r){
		vector<int>v,w;
		int m=(l+r)/2;
//		cout<<m<<' ';
		for(int i=l;i<=m;i++){
			v.push_back(i);
		}
		w=query_machine(v);
		if(w[0]!=m-l+1) r=m;
		else{
			v.clear();
			for(int i=m+1;i<=r;i++){
				v.push_back(i);
			}
			w=query_machine(v);
			if(w[0]==r-m) {
				dif=m;
				break;	
			}
			else l=m+1;
		}
	}
	vector<int> w=query_machine({dif,dif+1,dif});
	if(w[0]==2){
		reg=dif+1;
	}
	else reg=dif;
//	cout<<tox;
	int cur=0;
	while(cur<n){
		vector<int>v,w;
		for(int i=0;i<7;i++){
			if(cur+i<n){
				for(int h=0;h<(1<<i);h++){
					v.push_back(reg);
					v.push_back(cur+i);
					v.push_back(reg);
				}
			}
		}
//		for(int i=0;i<v.size();i++) cout<<v[i]<<' ';
//		cout<<"\n";
		w=query_machine(v);
		int hd=v.size()-w[0];
		hd/=2;
//		cout<<hd;
		v.clear();
		for(int i=0;i<7;i++){
			if(cur+i<n){
				if(hd&(1<<i)){
					as.push_back('T');
				}
				else{
					as.push_back('R');
				}
			}
		}
		cur+=7;
	}
//	for(int i=0;i<as.size();i++) cout<<as[i]<<' ';
	answer_type(as);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...