제출 #380653

#제출 시각아이디문제언어결과실행 시간메모리
380653vishesh312동굴 (IOI13_cave)C++17
51 / 100
480 ms620 KiB
#include "cave.h" #include "bits/stdc++.h" using namespace std; /* #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; using ordered_set = tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update>; */ #define all(x) begin(x), end(x) #define sz(x) (int)x.size() using ll = long long; const int mod = 1e9+7; void exploreCave(int n) { int s[n], d[n]; vector<bool> avl(n, true); for (int i = 0; i < n; ++i) { s[i] = 0; d[i] = -1; } for (int i = 0; i < n; ++i) { int x = tryCombination(s); bool zero = (x > i or x == -1); int str = 0; for (int jump = (n+1)/2; jump >= 1; jump++, jump /= 2) { int temp[n]; for (int j = 0; j < n; ++j) temp[j] = (avl[j]?zero:s[j]); for (int j = str; j < str+jump and j < n; ++j) { if (avl[j]) { temp[j] = !zero; } } x = tryCombination(temp); if (x > i or x == -1) { if (jump == 1) { d[str] = i; s[str] = !zero; avl[str] = false; break; } else { continue; } } else { str += jump; if (str >= n+5) exit(0); } } } 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...