Submission #1359660

#TimeUsernameProblemLanguageResultExecution timeMemory
1359660timmytimtamCave (IOI13_cave)C++20
0 / 100
119 ms572 KiB
#include "cave.h"
#include <vector>
using namespace std;
void exploreCave(int N) {
    //switch that controls the ith door,correct orientation of it
    vector<pair<int,int>> known;
    int guess[N];
    for(int i = 0;i < N;i++){
        for(int i = 0;i < N;i++) guess[i] = 0;
        for(auto x: known){
            guess[x.first] = x.second;
        }
        int orient;
        if(tryCombination(guess) > i){
            orient = 0;
        }else{
            orient = 1;
        }
        int l = 0,r = N-1;
        while(l < r){
            int mid = l+(r-l)/2;
            for(int i = 0;i < N;i++) guess[i] = !orient;
            for(int i = l;i <= mid;i++){
                guess[i] = orient;
            }
            for(auto x: known){
                guess[x.first] = x.second;
            }
            int res = tryCombination(guess);
            if(res > i || res == -1){
                r = mid;
            }else{
                l = mid+1;
            }
        }
        //now l == r
        known.push_back({l,orient});
    }
    int ans1[N],ans2[N];
    for(int i = 0;i < N;i++){
        ans1[known[i].first] = known[i].second;
        ans2[known[i].first] = i;
    }
    answer(ans1,ans2);
}
#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...