Submission #397411

#TimeUsernameProblemLanguageResultExecution timeMemory
397411danielcm585동굴 (IOI13_cave)C++11
100 / 100
1096 ms548 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; void exploreCave(int N) { int res[N], s[N], d[N]; memset(res,-1,sizeof(res)); for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { s[j] = (res[j] != -1 ? res[j] : 0); } int cur = (tryCombination(s) == i); int p = -1; for (int l = 0, r = N-1; l <= r; ) { int mid = (l+r)/2; for (int j = 0; j < N; j++) { if (res[j] != -1) s[j] = res[j]; else if (j <= mid) s[j] = cur; else s[j] = cur^1; } if (tryCombination(s) != i) { p = mid; r = mid-1; } else l = mid+1; } res[p] = cur; d[p] = i; // int l, r; // for (l = 0, r = N-1; l < r; ) { // int mid = (l+r)/2; // for (int j = 0; j < N; j++) { // if (res[j] != -1) s[j] = res[j]; // else if (l <= j && j <= mid) s[j] = cur; // else s[j] = cur^1; // } // if (tryCombination(s) != i) r = mid; // else l = mid+1; // } // res[l] = cur; // d[l] = i; } answer(res,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...