Submission #166558

#TimeUsernameProblemLanguageResultExecution timeMemory
166558igbaCave (IOI13_cave)C++17
100 / 100
1405 ms608 KiB
#include <bits/stdc++.h> #include "cave.h" const int MAXN = 5050; int s[MAXN], d[MAXN], aux[MAXN]; void exploreCave(int n) { memset(s, -1, sizeof s); for(int i = 0; i < n; ++i) { int beg = 0, end = n - 1, mid, x, y; for(int j = 0; j < n; ++j) aux[j] = s[j]; for(int j = 0; j < n; ++j) if(aux[j] == -1) aux[j] = 0; x = tryCombination(aux); if(x == -1) x = n; while(beg < end) { mid = (beg + end) >> 1; for(int j = 0; j < n; ++j) aux[j] = s[j]; for(int j = beg; j <= mid; ++j) if(aux[j] == -1) aux[j] = 1; for(int j = 0; j < n; ++j) if(aux[j] == -1) aux[j] = 0; y = tryCombination(aux); if(y == -1) y = n; if((x > i && y > i) || (x == i && y == i)) beg = mid + 1; else end = mid; } d[beg] = i; if(x == -1) x = n; if(x > i) s[beg] = 0; else s[beg] = 1; } 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...