Submission #170346

#TimeUsernameProblemLanguageResultExecution timeMemory
170346ngmhLibrary (JOI18_library)C++11
19 / 100
3093 ms532 KiB
#include <bits/stdc++.h> #include "library.h" using namespace std; void Solve(int N) { if(N == 1){ vector<int> edge; edge.push_back(1); Answer(edge); return; } vector<int> v(N); vector<int> adjlist[N+1]; long long A, S, T; for(int i = 1; i <= N; i++){ for(int j = 1; j <= N; j++){ if(i == j || adjlist[j].size() == 2) continue; if(find(adjlist[i].begin(), adjlist[i].end(), j) != adjlist[i].end()) continue; v[i-1] = v[j-1] = 1; A = Query(v); v[i-1] = v[j-1] = 0; if(A == 1){ adjlist[i].push_back(j); adjlist[j].push_back(i); if(adjlist[i].size() == 2) break; } } if(adjlist[i].size() == 1) S = i; } vector<int> res; res.push_back(S); T = adjlist[S][0]; while(true){ res.push_back(T); if(res.size() == N) break; for(int i = 0; i < adjlist[T].size(); i++){ if(adjlist[T][i] != S){ S = T; T = adjlist[T][i]; break; } } } Answer(res); }

Compilation message (stderr)

library.cpp: In function 'void Solve(int)':
library.cpp:36:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(res.size() == N) break;
      ~~~~~~~~~~~^~~~
library.cpp:37:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i = 0; i < adjlist[T].size(); i++){
                  ~~^~~~~~~~~~~~~~~~~~~
library.cpp:32:15: warning: 'S' may be used uninitialized in this function [-Wmaybe-uninitialized]
  res.push_back(S);
  ~~~~~~~~~~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...