Submission #481179

#TimeUsernameProblemLanguageResultExecution timeMemory
481179nadorbCave (IOI13_cave)C++14
0 / 100
438 ms416 KiB
#include "cave.h"
#include <bits/stdc++.h>
using namespace std;

void exploreCave(int n) {
    int s[n], known[n], whereto[n];
    for(int i = 0; i < n; i++){
        known[i] = -1;
    }
    for(int i = 0; i < n; i++){ // minden ajtora
        for(int j = 0; j < n; j++){
            s[j] = max(known[j], 0);
        }
        int g = tryCombination(s);
        bool  door = (g == -1 || g > i + 1);
        int l = 0, r = n - 1;
        while(l < r){
            int mid = (l + r) / 2;
            for(int j = 0; j < n; j++){
                if(known[j] > -1){
                    s[j] = known[j];
                }
                else{
                    if(l <= j && j <= mid){
                        s[j] = door;
                    }
                    if(mid < j && j <= r){
                        s[j] = (1 - door);
                    }
                }
            }
            int res = tryCombination(s);
            if(res == - 1 || res > i + 1){
                r = mid;
            }
            else{
                l = mid + 1;
            }
        }
        whereto[l] = i;
        known[l] = door;
    }
    answer(known, whereto);
}
#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...