제출 #1147504

#제출 시각아이디문제언어결과실행 시간메모리
1147504AlgorithmWarrior동굴 (IOI13_cave)C++20
100 / 100
381 ms536 KiB
#include <bits/stdc++.h>
#include "cave.h"

using namespace std;

int const UNKNOWN=2;
int const MAX=5005;
int bec[MAX];
int usa[MAX];
int test[MAX];

void schimba(int pref,int valp,int vals,int N){
    int i;
    for(i=0;i<N;++i)
        if(bec[i]!=UNKNOWN)
            test[i]=bec[i];
        else
            if(i<=pref)
                test[i]=valp;
            else
                test[i]=vals;
}

void exploreCave(int N){
    int i;
    for(i=0;i<N;++i)
        bec[i]=UNKNOWN;
    for(i=0;i<N;++i){
        schimba(N-1,0,1,N);
        int val;
        if(tryCombination(test)==i)
            val=1;
        else
            val=0;
        int st=-1,dr=N-1;
        /// (]
        while(dr-st>1){
            int mij=(st+dr)/2;
            schimba(mij,val,1-val,N);
            if(tryCombination(test)!=i)
                dr=mij;
            else
                st=mij;
        }
        bec[dr]=val;
        usa[dr]=i;
    }
    answer(bec,usa);
}
#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...