Submission #231201

#TimeUsernameProblemLanguageResultExecution timeMemory
231201AASGCave (IOI13_cave)C++17
0 / 100
162 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,y;
    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=p1;l<=p3;l++){
                if(P[l]==0){
                    aux2[l]=1;
                }
            }
            }
            y=tryCombination(aux2);
        if(x==i+1 && y==i+1){p1=p3;z=0;}
        else if(x!=i+1 && y==i){p2=p3;z=1;}
        else if(x==i+1 && y!=i+1){
                p2=p3;
                z=1;
        }
        else if(x!=i+1 && y!=i+1){
            p1=p3;
            z=0;
        }
        x=y;
        }
        if(aux2[p1]==1 && P[p1]==0){aux2[p1]=0;}
        else{R[p2]=aux2[p2];}
        y=tryCombination(aux2);
        if(x==i+1 && y==i+1){R[p2]=aux2[p2];P[p2]=i+1;}
        else if(x!=i+1 && y==i){R[p1]=aux2[p1];P[p1]=i+1;}
        else if(x==i+1 && y!=i+1){if(aux2[p1]==1){aux2[p1]=0;}
        else{aux2[p1]=1;}
        R[p1]=aux2[p1];P[p1]=i+1;
        }
        else if(x!=i+1 && y!=i+1){if(aux2[p2]==1){aux2[p2]=0;}
        else{aux2[p2]=1;}
        R[p2]=aux2[p2];
        P[p2]=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...