Submission #278551

#TimeUsernameProblemLanguageResultExecution timeMemory
278551jainbot27Cave (IOI13_cave)C++17
100 / 100
485 ms640 KiB
#include <bits/stdc++.h> #include "cave.h" using namespace std; void exploreCave(int n){ int cur[n], done[n], ans[n], ans2[n]; for(int i = 0; i < n; i++){ cur[i] = 0, done[i] = 0, ans[i] = 0, ans2[i] = 0; } for(int i=0; i < n; i++){ int mirror[n]; if(tryCombination(cur) == i){ for(int j = 0; j < n; j++){ if(!done[j]) cur[j] ^=1; } } for(int j=0; j < n; j++) mirror[j] = cur[j]; int lo = 0, hi = n-1; while(lo < hi){ int mid = (lo + hi)/2; for(int j = lo; j <= mid; j++){ if(!done[j]) mirror[j] ^= 1; } int x = tryCombination(mirror); if(x != i){ lo = mid + 1; } else{ hi = mid; } for(int j=0; j < n; j++){ mirror[j] = cur[j]; } } done[lo] = 1; ans[lo] = i; ans2[lo] = cur[lo]; } answer(ans2, ans); exit(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...