제출 #1247904

#제출 시각아이디문제언어결과실행 시간메모리
1247904denislav동굴 (IOI13_cave)C++20
0 / 100
190 ms512 KiB
# include <iostream>
# include <vector>
using namespace std;
# include "cave.h"
//# include "grader.c"

const int MAX=5e3+11;

int query(int S[])
{
    int resp=tryCombination(S);
    if(resp==-1) return 1e9;
    else return resp;

}

void exploreCave(int N)
{
    int s[N+1],d[N+1];
    for(int i=0;i<N;i++)
    {
        s[i]=0;
        d[i]=-1;
    }

    for(int i=0;i<N;i++)
    {
        int resp=query(s);
        int l=0,r=N-1,ans=0;
        while(l<r)
        {
            int mid=(l+r)/2;
            for(int i=l;i<=mid;i++) if(d[i]==-1) s[i]^=1;
            int resp2=query(s),L=i;
            if((resp==i and resp2==i) or (resp>i and resp2>i))
            {
                r=mid+1;
                ans=mid+1;
            }
            else
            {
                l=mid;
                ans=mid;
            }

            for(int i=L;i<=mid;i++) if(d[i]==-1) s[i]^=1;
        }

        d[ans]=i;
        if(resp==i) s[ans]=1;
    }

    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...