Submission #539310

#TimeUsernameProblemLanguageResultExecution timeMemory
539310andrei_boacaCave (IOI13_cave)C++17
100 / 100
922 ms592 KiB
#include <bits/stdc++.h>
#include "cave.h"
//#pragma GCC optimize("O3")
//#include "grader.c"
using namespace std;
int S[5005],D[5005],cnt;
bool use[5005];
void exploreCave(int n)
{
    for(int i=0;i<n;i++)
    {
        int val=0;
        for(int j=0;j<n;j++)
            if(!use[j])
                S[j]=0;
        int nr=tryCombination(S);
        //cnt++;
        if(nr==-1||nr>i)
            val=0;
        else
            val=1;
        int st=0;
        int dr=n-1;
        int poz=-1;
        while(st<=dr)
        {
            int mij=(st+dr)/2;
            for(int j=0;j<=mij;j++)
                if(!use[j])
                    S[j]=val;
            for(int j=mij+1;j<n;j++)
                if(!use[j])
                    S[j]=(val+1)%2;
            nr=tryCombination(S);
            //cnt++;
            if(nr==-1||nr>i)
            {
                poz=mij;
                dr=mij-1;
            }
            else
                st=mij+1;
        }
        S[poz]=val;
        use[poz]=1;
        D[poz]=i;
    }
    //cout<<cnt<<'\n';
    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...