Submission #1256404

#TimeUsernameProblemLanguageResultExecution timeMemory
1256404tvgkLibrary (JOI18_library)C++20
0 / 100
9 ms452 KiB
#include <cstdio> #include <vector> #include "library.h" #include<bits/stdc++.h> using namespace std; #define task "a" #define se second #define fi first #define ll long long #define ii pair<ll, ll> const long mxN = 1e3 + 7; vector<int> w[mxN], ans; int cnt[mxN], n; int Ask(int u, int v) { vector<int> vc(n); int res = v - u + 1; for (int i = u; i <= v; i++) { vc[i - 1] = 1; res -= cnt[i]; } return Query(vc) - res; } void DFS(int j, int par) { ans.push_back(j); for (int i : w[j]) { if (par == i) continue; DFS(i, j); } } void Solve(int N) { n = N; for (int i = 1; i <= n; i++) { while (Ask(1, i)) { int l = 1, r = i, ans = 1; while (l <= r) { int mid = (l + r) / 2; if (Ask(mid, i)) { ans = mid; l = mid + 1; } else r = mid - 1; } cnt[ans]++; w[ans].push_back(i); w[i].push_back(ans); } } assert(0); for (int i = 1; i <= n; i++) assert(w[i].size() <= 2); for (int i = 1; i <= n; i++) { if (w[i].size() == 1) { DFS(i, -1); break; } } Answer(ans); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...