Submission #1038529

#TimeUsernameProblemLanguageResultExecution timeMemory
1038529attkyCave (IOI13_cave)C++17
100 / 100
163 ms604 KiB
#include <bits/stdc++.h> #include "cave.h" using namespace std; void exploreCave(int n) { int state[n], pos[n]; bool good[n]; for(int loop = 0; loop < n; ++loop) { good[loop] = false; pos[loop] = -1; } for(int loop = 0; loop < n; ++loop) { for(int looping = 0; looping < n; ++looping) { if(!good[looping]) { state[looping] = 1; } } int ans = tryCombination(state); if(ans < 0) { ans = 2e9; } bool closed = (ans == loop); int deb = 0, fin = n-1; while(fin-deb > 0) { int mid = (deb+fin)/2; for(int looping = mid+1; looping <= fin; ++looping) { if(!good[looping]) { state[looping] = 1-state[looping]; } } int newAns = tryCombination(state); if(newAns < 0) { newAns = 2e9; } bool newClosed = (newAns == loop); if((newClosed && closed) || (!newClosed && !closed)) { fin = mid; } else { deb = mid+1; } ans = newAns; closed = newClosed; } good[deb] = true; pos[deb] = loop; if(closed) { state[deb] = 1 - state[deb]; } } answer(state, pos); }
#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...