Submission #344150

#TimeUsernameProblemLanguageResultExecution timeMemory
344150milleniumEeeeLibrary (JOI18_library)C++17
19 / 100
364 ms532 KiB
#include <bits/stdc++.h> #include "library.h" //#include "grader.cpp" using namespace std; // Query(M) = мин кол-во чтобы вырезать нужные числа const int MAXN = 1005; vector <int> g[MAXN]; vector <int> res; int n; int ask(int a, int b) { vector <int> need(n, 0); need[a - 1] = 1; need[b - 1] = 1; int x = Query(need); return x; } void dfs(int v, int par, int ind) { res[ind] = v; for (int to : g[v]) { if (to != par) { dfs(to, v, ind + 1); } } } void Solve(int N) { if (N == 1) { Answer(vector <int> ({1})); return; } n = N; vector <int> deg(n + 1, 0); res.resize(n); for (int i = 1; i <= n; i++) { for (int j = i + 1; j <= n; j++) { if (ask(i, j) == 1) { g[i].push_back(j); g[j].push_back(i); deg[i]++, deg[j]++; } } } int root = -1; int sz[3] = {0, 0, 0}; for (int i = 1; i <= n; i++) { sz[deg[i]]++; if (deg[i] == 1) { root = i; } } dfs(root, -1, 0); if ((int)res.size() != n || !(sz[1] == 2 && sz[2] == n - 2)) { while (1); } Answer(res); } /* 5 4 2 5 3 1 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...