Submission #202407

#TimeUsernameProblemLanguageResultExecution timeMemory
202407EntityITLibrary (JOI18_library)C++14
0 / 100
648 ms262148 KiB
#include "library.h" #include<bits/stdc++.h> using namespace std; #define all(x) (x).begin(), (x).end() #define sz(x) ( (int)(x).size() ) using LL = long long; void Solve(int N) { vector<int> pref(N); vector<int> ele(N); for (int i = 0; i < N; ++i) { fill(all(ele), 0); fill(ele.begin(), ele.begin() + i + 1, 1); pref[i] = Query(ele); } vector<vector<int> > gr(N); for (int i = 1; i < N; ++i) if (pref[i] ^ pref[i - 1]) { int l = 0, r = i - 1; while (l < r) { int mid = (l + r) >> 1; fill(all(ele), 0); fill(ele.begin(), ele.begin() + mid + 1, 1); ele[i] = 1; if (Query(ele) != pref[mid]) r = mid; else l = mid + 1; } gr[i].emplace_back(l); gr[l].emplace_back(i); if (pref[i] - pref[i - 1] > 1) { l = 0, r = i - 1; while (l < r) { int mid = (l + r) >> 1; fill(all(ele), 0); fill(ele.begin(), ele.begin() + mid + 1, 1); ele[i] = 1; if (Query(ele) - pref[mid] > 1) r = mid; else l = mid + 1; } gr[i].emplace_back(l); gr[l].emplace_back(i); } } int rt = -1; for (int u = 0; u < N; ++u) if (sz(gr[u]) == 1) rt = u; vector<bool> vis(N); vector<int> ans; for (int u = rt; ; ) { vis[u] = true; ans.emplace_back(u); for (int v : gr[u]) if (!vis[v]) u = v; } Answer(ans); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...