Submission #43986

#TimeUsernameProblemLanguageResultExecution timeMemory
43986ruhanhabib39Library (JOI18_library)C++17
19 / 100
2027 ms1144 KiB
#include <cstdio> #include <vector> #include "library.h" using namespace std; namespace { int N; const int MAXN = 1000; vector<int> G[MAXN + 10]; vector<int> init(int l, int r) { vector<int> v(N, 0); fill(v.begin() + l, v.begin() + r + 1, 1); return v; } vector<int> upd(vector<int> m, int i) { m[i] = 1; return m; } void work(int i, int l, int r) { if(l == r) { G[i].push_back(l); G[l].push_back(i); return; } int m = (l + r) / 2; if(Query(init(l, m)) >= Query(upd(init(l, m), i))) { work(i, l, m); } if(Query(init(m+1, r)) >= Query(upd(init(m+1, r), i))) { work(i, m+1, r); } } }; void Solve(int N_) { N = N_; for(int i = 1; i < N; i++) { if(Query(init(0, i-1)) >= Query(init(0, i))) work(i, 0, i-1); } vector<int> res; res.reserve(N); int u = 0, p = -1; while(G[u].size() > 1) u++; while((int)res.size() < N) { res.push_back(u+1); for(int v : G[u]) { if(v != p) { p = u; u = v; break; } } } Answer(res); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...