제출 #1241641

#제출 시각아이디문제언어결과실행 시간메모리
1241641Tesla89동굴 (IOI13_cave)C++20
100 / 100
355 ms528 KiB
#include "cave.h"

using namespace std;

int binPret(int vrata,int N,int* preset,int* mark,int num){
    int test[N];
    int l=0,r=N-1;
    while(r>l){
        int mid=(l+r)>>1;
        for(int i=0;i<N;i++){
            if(i>=l&&mid>=i&&mark[i]==-1)test[i]=num;
            else test[i]=preset[i];
        }
        int response = tryCombination(test);
        if(response>vrata||response==-1)r=mid;
        else l=mid+1;
    }
    return l;
}

void exploreCave(int N){
    int zero[N],one[N],d[N];
    for(int i=0;i<N;i++){d[i]=-1,zero[i]=0;one[i]=1;}
    for(int i=0;i<N;i++){
        int indvrata,response=tryCombination(zero);
        if(response>i||response==-1){
            indvrata=binPret(i,N,one,d,0);
            one[indvrata]=0;
        }
        else{
            indvrata=binPret(i,N,zero,d,1);
            zero[indvrata]=1;
        }
        d[indvrata]=i;
    }
    answer(zero,d);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...