Submission #1216750

#TimeUsernameProblemLanguageResultExecution timeMemory
1216750lizi14Cave (IOI13_cave)C++20
0 / 100
103 ms528 KiB
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstdio>
#include "cave.h"
 
using namespace std;
 
void exploreCave(int N) {
    int x[N];
    fill(x,x+N,1);
    int s[N];
    fill(x,x+N,0);
    int an=0;
    int c[N];
    int h=-1;
    while(true){
        for(int i=0; i<N; i++){
            if(s[i]==0){
                x[i]=1;
            }
        }
        int a=tryCombination(x);
        h++;
        if(a==-1){
            break;
        }
        if(a>an){
            int ans=-1;
            int l=0,r=N-1;
            while(l<=r){
               int mid=(l+r)/2;
               for(int i=l; i<mid; i++){
                   if(s[i]==0){
                       x[i]=1-x[i];
                   }
               }
               int k=tryCombination(x);;
               if(k==a){
                   l=mid+1;
                   ans=mid;
               }
               else r=mid-1;
            }
            an=a-1;
            s[ans]=1;
            c[ans]=h;
        }
        //x[a]=1-x[a];
    }
    
    //for(int i=0; i<N; i++)c[i]=i;
    return answer(x, c);
}
#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...