Submission #47882

#TimeUsernameProblemLanguageResultExecution timeMemory
47882Just_Solve_The_ProblemLibrary (JOI18_library)C++17
19 / 100
2013 ms644 KiB
#include <bits/stdc++.h> //#include "grader.cpp" #include "library.h" #define pb push_back #define ok cerr << "OK\n"; using namespace std; const int NN = 1e5 + 7; int used[NN]; void Solve(int N) { vector < int > M(N, 1); int n = N; vector < int > ans, v1, v2; int cnt = 0, qq; int q1 = n; while (cnt < n - 1 && q1--) { for (int i = 0; i < n && cnt < n - 1; i++) { if (used[i]) continue; M[i] = 0; qq = Query(M); M[i] = 1; if (qq == 1) { if (v1.empty()) { v1.pb(i); } else { M[v1.back()] = 1; M[i] = 0; qq = Query(M); M[v1.back()] = 0; if (qq == 1) { v2.pb(i); } else { v1.pb(i); } } used[i] = 1; cnt++; M[i] = 0; } } if (!(cnt < n - 1)) break; for (int i = n - 1; i >= 0 && cnt < n - 1; i--) { if (used[i]) continue; M[i] = 0; qq = Query(M); M[i] = 1; if (qq == 1) { if (v1.empty()) { v1.pb(i); } else { M[v1.back()] = 1; M[i] = 0; qq = Query(M); M[v1.back()] = 0; if (qq == 1) { v2.pb(i); } else { v1.pb(i); } } used[i] = 1; cnt++; M[i] = 0; } } } for (int i = 0; i < n; i++) { if (!used[i]) v1.pb(i); } for (int to : v1) { ans.pb(to + 1); } for (int i = (int)v2.size() - 1; i >= 0; i--) { ans.pb(v2[i] + 1); } Answer(ans); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...