제출 #830444

#제출 시각아이디문제언어결과실행 시간메모리
830444irmuun동굴 (IOI13_cave)C++17
13 / 100
9 ms392 KiB
#include<bits/stdc++.h>
#include "cave.h"

using namespace std;

#define ll long long
#define pb push_back
#define ff first
#define ss second
#define all(s) s.begin(),s.end()
#define rall(s) s.rbegin(),s.rend()

void exploreCave(int n){
    int s[n],d[n];
    fill(s,s+n,0);
    int x=tryCombination(s);
    if(x==-1){//subtask 2
        for(int i=0;i<n;i++){
            s[i]=1;
            x=tryCombination(s);
            d[i]=x;
            s[i]=0;
        }
        answer(s,d);
        return;
    }
    if(n<=100){
        fill(s,s+n,0);
        x=tryCombination(s);
        while(x>-1){
            for(int i=0;i<n;i++){
                s[i]=1-s[i];
                int y=tryCombination(s);
                if(y==-1) y=n;
                if(y>x){
                    break;
                }
                s[i]=1-s[i];
            }
        }
        for(int i=0;i<n;i++){
            s[i]=1-s[i];
            x=tryCombination(s);
            d[i]=x;
            s[i]=1-s[i];
        }
        answer(s,d);
        return;
    }
    fill(s,s+n,0);
    iota(d,d+n,0);
    x=tryCombination(s);
    while(x>-1){
        s[x]=1-s[x];
        x=tryCombination(s);
    }
    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...