Submission #1080180

#TimeUsernameProblemLanguageResultExecution timeMemory
1080180TozzyyyyLibrary (JOI18_library)C++14
0 / 100
38 ms728 KiB
#include <cstdio> #include <vector> #include "library.h" #include <bits/stdc++.h> using namespace std; const int MAXN = 2000; vector<int> adj[MAXN]; vector<int> res; int vs[MAXN]; void dfs(int u){ vs[u] = 1; res.push_back(u); for(auto x : adj[u]) if(vs[x] == 0) dfs(x); } void Solve(int n) { int lst = -1; int cur = 1; int cnt = 0; while(cnt < n - 1){ vector<int> t; for(int j = 1 ; j <= n ; j++){ if(cur == j or j == lst) continue; t.push_back(j); } int l = 0 , r = t.size()-1; int res = -1; while(l <= r){ int mid = l + r >> 1; vector<int> m(n); for(int j = l ; j <=mid ; j++) m[t[j] - 1] = 1; int c1 = Query(m); m[cur-1] = 1; int c2 = Query(m); if(c2 <= c1) res = mid , r = mid-1; else l = mid+1; } if(res == -1){ cur = 1; lst = adj[1][0]; }else{ res = t[res]; adj[cur].push_back(res); adj[res].push_back(cur); lst = cur , cur = res, cnt++; } } for(int i = 1; i <= n ; i++){ if(adj[i].size() == 1){ dfs(i); break; } } assert(res.size() == n); Answer(res); }

Compilation message (stderr)

library.cpp: In function 'void Solve(int)':
library.cpp:31:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   31 |    int mid = l + r  >> 1;
      |              ~~^~~
In file included from /usr/include/c++/10/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:33,
                 from library.cpp:4:
library.cpp:57:20: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   57 |  assert(res.size() == n);
      |         ~~~~~~~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...