제출 #1186416

#제출 시각아이디문제언어결과실행 시간메모리
1186416nikaa123동굴 (IOI13_cave)C++20
0 / 100
1 ms328 KiB
#include "cave.h"
#include <bits/stdc++.h>
#define pb push_back

using namespace std;

const int N = 5e3+5;

int n;
int fix[N];
int ind,ans[N],p[N],cnt[N];

void exploreCave(int N) {
    
    n = N;
    int v[n];
    for (int i = 0; i < n; i++) {
        v[i] = 1;
    }
    for (int i = 0; i < n; i++) {
        int c = tryCombination(v);
        int l = 0; int r = n-1;
        while (l <= r) {
            int mid = (l+r)/2;
            for (int j = l; j <= mid; j++) {
                if (fix[j]) continue;
                v[j] = !v[j];
                cnt[j]++;
            }
            int nc = tryCombination(v);
            if (c != nc) {
                ind = mid;
                r = mid;
            } else {
                ind = mid;
                l = mid;
            }
            c = nc;
        }
        ans[i] = ind;
        fix[ind] = 1;
        if (cnt[ind]%2) {
            p[ind]=!v[ind];
        }     
        if (c != -1 && c <= ind) {
            p[ind]=!p[ind];
            v[ind]=!v[ind];
        }
    }

    int S[N],D[N];
    for (int i = 0; i < n; i++) {
        S[i] = v[i];
        D[ans[i]] = i; 
    }

    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...