제출 #231188

#제출 시각아이디문제언어결과실행 시간메모리
231188AASG동굴 (IOI13_cave)C++17
0 / 100
51 ms504 KiB
#include "cave.h"
#include <bits/stdc++.h>
using namespace std;
void exploreCave(int N) {
    int n=N;
    int R[n];int P[n];
    int aux2[n];
    int x;
    bool z;
    for(int i=0;i<n;i++){
        R[i]=1;
        P[i]=0;
    }
    for(int i=0;i<n;i++){
        for(int l=0;l<n;l++)aux2[l]=R[l];
        int p1=0,p2=n-1;
        x=tryCombination(aux2);z=1;
        while(abs(p1-p2)!=1){
            int p3=(p1+p2)/2;
            if(z){
            for(int l=p1;l<=p3;l++){
                if(P[l]==0){
                    aux2[l]=0;
                }
            }}else{
            for(int l=p3+1;l<=p2;l++){
                if(P[l]==0){
                    aux2[l]=1;
                }
            }
            }
            int y=tryCombination(aux2);
            if(x==y){
                p1=p3+1;
                z=1;
            }else{
            p2=p3;
            z=0;
            }
            x=y;
        }
        if(aux2[p2]==1){aux2[p2]=0;}
        else aux2[p2]=1;
        if(tryCombination(aux2)<i+1){
            if(aux2[p2]==1){aux2[p2]=0;}
            else aux2[p2]=1;
            R[p2]=aux2[p2];
            P[p2]=i+1;
        }else{
        R[p1]=aux2[p1];
        P[p1]=i+1;
        }
    }
    answer(R,P);
}
#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...