Submission #741575

#TimeUsernameProblemLanguageResultExecution timeMemory
741575JakobZorzCave (IOI13_cave)C++14
51 / 100
95 ms452 KiB
#include "cave.h" #include <vector> using namespace std; int n, depth; int states[5000]; int conn[5000]; vector<int> active; bool try_comb() { return tryCombination(states) != depth; } void find(int l, int r) { if(l==r-1) { if(!try_comb()) states[active[l]]^=1; conn[active[l]]=depth; active.erase(active.begin()+l); depth++; return; } int mid=(l+r)/2; bool s1=try_comb(); for(int i=0;i<mid;i++) states[active[i]]^=1; bool s2=try_comb(); if(s1==s2) find(mid, r); else find(l, mid); } void exploreCave(int N) { n=N; for(int i=0;i<n;i++) active.push_back(i); while(!active.empty()) { find(0, active.size()); } answer(states, conn); }
#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...