Submission #1357700

#TimeUsernameProblemLanguageResultExecution timeMemory
1357700ezzzayCave (IOI13_cave)C++20
100 / 100
83 ms564 KiB
#include "cave.h"
#include <bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
void exploreCave(int N) {
    vector<int>col(N);   
    vector<int>con(N);   
    vector<int>vc;         
    for(int i=0;i<N; i++)vc.pb(i);

    for (int i=0;i<N;i++) {
        int b=tryCombination(col.data());
        bool u=(b==i);
        int s=0;
        for (int j=12;j>=0;j--) {
            if (s+(1<<j)<=(int)vc.size()) {
                for(int k=s; k<s+(1<<j);k++) {
                    col[vc[k]]^=1;
                }
                int c = tryCombination(col.data());
                for (int k = s; k < s + (1 << j); k++) {
                    col[vc[k]] ^= 1;
                }
                bool p=(c==i);
                if(p==u)s+=(1<<j);
            }
        }
        con[vc[s]] = i;
        col[vc[s]] = u;
        vc.erase(vc.begin() + s);
    }
    answer(col.data(), con.data());
}
#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...