제출 #1350596

#제출 시각아이디문제언어결과실행 시간메모리
1350596feyza동굴 (IOI13_cave)C++20
33 / 100
25 ms556 KiB
#include <bits/stdc++.h>
#include "cave.h"

using namespace std;

const int maxn=5005;
int n;
int doorbit[maxn];
int usedswitch[maxn];

void exploreCave(int N)
{
    n=N;

    int ans[N],bit[N];

    for(int i=0;i<N;i++)
    {
        bit[i]=0;
        ans[i]=0;
    }

    int ask[N];

    for(int i=0;i<N;i++)
    {
        int c=tryCombination(bit);
        if(c==-1)
            c=N;
        if(c>i)
            doorbit[i]=0;
        else
            doorbit[i]=1;

        for(int j=0;j<N;j++)
        {
            if(usedswitch[j])
                ask[j]=doorbit[ans[j]];
            else
                ask[j]=1-doorbit[i];
        }

        /*cout<<"ask ";
        for(int j=0;j<N;j++)
            cout<<ask[j]<<' ';
        cout<<endl;*/

        int curr;
        for(int j=0;j<N;j++)
        {
            if(!usedswitch[j])
            {
                ask[j]=doorbit[i];
                curr=tryCombination(ask);
                if(curr==-1)
                    curr=N;

                /*cout<<"try ";
                for(int k=0;k<N;k++)
                    cout<<ask[k]<<' ';
                cout<<"- "<<curr<<endl;*/

                if(curr>i)
                {
                    ans[j]=i;
                    usedswitch[j]=1;
                    bit[j]=doorbit[i];
                    //cout<<j<<' '<<i<<' '<<doorbit[i]<<endl;
                    break;
                }
                else
                    ask[j]=1-doorbit[i];
            }
        }
    }

    /*cout<<"bit ";
    for(int i=0;i<N;i++)
        cout<<bit[i]<<' ';
    cout<<endl;
    cout<<"ans ";
    for(int i=0;i<N;i++)
        cout<<ans[i]<<' ';
    cout<<endl;*/

    answer(bit,ans);
}
#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...