Submission #544164

#TimeUsernameProblemLanguageResultExecution timeMemory
544164krit3379Cave (IOI13_cave)C++14
100 / 100
244 ms532 KiB
#include<bits/stdc++.h>
using namespace std;
#include"cave.h"
#define N 5005

int s[N],ans[N];

void exploreCave(int n){
  	int i,j,l,r,mid,flag,now;
    for(i=0;i<n;i++)ans[i]=-1;
    for(i=0;i<n;i++){
        l=0,r=n-1;
        flag=(tryCombination(s)==i);
        while(l<r){
            mid=(l+r)/2;
            for(j=l;j<=mid;j++)if(ans[j]==-1)s[j]=1;
            now=(tryCombination(s)==i);
            for(j=l;j<=mid;j++)if(ans[j]==-1)s[j]=0;
            if(flag==now)l=mid+1;
            else r=mid;
        }
        ans[l]=i,s[l]=flag;
    }
    answer(s,ans);
    return ;
}
#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...