제출 #729503

#제출 시각아이디문제언어결과실행 시간메모리
729503NeroZeinCave (IOI13_cave)C++17
13 / 100
840 ms376 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; const int N = 5005; bool vis[N]; void exploreCave(int N_) { int n; n = N_; int a[n]; for (int i = 0; i < n; ++i) { a[i] = 0; } for (int i = 0; i < n; ++i) { int l = 0, r = n; while (l < r) { int mid = (l + r) >> 1; for (int j = 0; j <= mid; ++j) { if (!vis[j]) { a[j] = 0; } } for (int j = mid + 1; j < n; ++j) { if (!vis[j]) { a[j] = 1; } } int z = tryCombination(a); if (z == -1 || z > i) { r = mid; } else { l = mid + 1; } } if (l != n) { a[l] = 0; vis[l] = true; } else { l = 0, r = n - 1; while (l < r) { int mid = (l + r) >> 1; for (int j = 0; j <= mid; ++j) { if (!vis[j]) { a[j] = 1; } } for (int j = mid + 1; j < n; ++j) { if (!vis[j]) { a[j] = 0; } } int z = tryCombination(a); if (z == -1 || z > i) { r = mid; } else { l = mid + 1; } } vis[l] = true; a[l] = 1; } //for (int j = 0; j < n; ++j) { //cout << a[j] << ' '; //} //cout << '\n'; //for (int j = 0; j < n; ++j) { //cout << vis[j] << ' '; //} //cout << '\n' << '\n'; } int d[n]; for (int i = 0; i < n; ++i) { d[i] = 0; } for (int i = 0; i < n; ++i) { a[i] ^= 1; int x = tryCombination(a); d[i] = x; a[i] ^= 1; } answer(a, 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...