Submission #883884

#TimeUsernameProblemLanguageResultExecution timeMemory
883884Malix동굴 (IOI13_cave)C++14
0 / 100
43 ms540 KiB
#include "cave.h"
#include <bits/stdc++.h>

using namespace std;

typedef vector<int> vi;

#define REP(i,a,b) for(int i=a;i<b;i++)

void exploreCave(int N) {
    /* ... */
    int s[N],d[N];
    int a[N];
    int pos=0;int p1=0,p2=0;
    int l=0,r=N-1;
    while(pos<N){
        REP(i,0,N)a[i]=0;
        while(N){
            int k=(l+r)/2;
            REP(i,l,k+1)a[i]=1;
            REP(i,0,pos)a[d[i]]=s[d[i]];
            p1=tryCombination(a);
            REP(i,l,k+1)a[i]=0;
            REP(i,0,pos+1)a[d[i]]=s[d[i]];
            p2=tryCombination(a);
            if((p1==pos)^(p2==pos))r=k;
            else l=k+1;
            if(k<l)break;
            if(l==r){
                d[pos]=l;
                a[l]=0;
                p1=tryCombination(a);
                if(p1==pos)s[l]=1;
                else s[l]=0;
                break;
            }
            
        }
        pos++;
    }
    answer(s,d);
}
#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...