Submission #413795

#TimeUsernameProblemLanguageResultExecution timeMemory
413795LouayFarahCave (IOI13_cave)C++14
46 / 100
42 ms460 KiB
#include "bits/stdc++.h"
#include "cave.h"
using namespace std;
 
int tryCombination(int S[]);
void answer(int S[], int D[]);
 
vector<bool> visited;

void exploreCave(int N)
{
    int S[N];
    int D[N];
    visited.assign(N, false);
    for(int i = 0; i<N; i++)
    {
        S[i] = 0;
        D[i] = i;
    }

    int res = tryCombination(S);
    for(int door = 0; door<N; door++)
    {
        if(res==-1)
        {
            for(int i = 0; i<N; i++)
            {
                S[i] = 1 - S[i];
                int d = tryCombination(S);
                S[i] = 1 - S[i];
                D[i] = d;
            }
            answer(S, D);
        }
        if(res==door)
        {
            for(int i = 0; i<N; i++)
            {
                if(!visited[i])
                {
                    S[i] = 1 - S[i];
                    int curr = tryCombination(S);
                    S[i] = 1 - S[i];
                    if(curr!=door)
                    {
                        D[i] = door;
                        S[i] = 1 - S[i];
                        visited[i] = true;
                        res = curr;
                        break;
                    }
                }
            }
        }
        else
        {
            for(int i = 0; i<N; i++)
            {
                if(!visited[i])
                {
                    S[i] = 1 - S[i];
                    int curr = tryCombination(S);
                    S[i] = 1 - S[i];
                    if(curr==door)
                    {
                        D[i] = door;
                        visited[i] = true;
                        break;
                    }
                }
            }
        }
    }
    answer(S, D);
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...