제출 #1310663

#제출 시각아이디문제언어결과실행 시간메모리
1310663nikoloz-ch동굴 (IOI13_cave)C++20
0 / 100
18 ms516 KiB
#include <bits/stdc++.h>
#include "cave.h"
using namespace std;

vector<int> s;

int ask(vector<int> &p){
    int pt[p.size()];
    for(int i = 0; i < p.size(); i++) pt[i] = p[i];
    return tryCombination(pt);
}

void exploreCave(int N){
    s.resize(N);
    for(int i = 0; i < N; i++) s[i] = -1;
    for(int i = 0; i < N; i++){
        auto p = s; bool tr = true;
        for(int j = 0; j < N; j++)
            if(s[j] == -1) s[j] = 1;
        int t = ask(p);
        if(t >= i+1) tr = !tr;
        int l = 0, r = 0, ans = 0;
        while(l < r){
            int m = (l+r)/2; auto pt = s;
            for(int j = 0; j < m; j++)
                if(pt[j] == -1) pt[j] = (tr ? 1 : 0);
            int d = ask(pt);
            if(d >= i+1) l = m;
            else r = m;
            if(l == r-1){
                ans = m;
                break;
            }
        }
        s[ans] = (tr ? 1 : 0);
    }
}
#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...