#include <bits/stdc++.h>
bool are_connected(std::vector<int> A, std::vector<int> B);
std::vector<int> longest_trip(int n, int d) {
std::vector<std::vector<int>> adj(n);
auto add_edge = [&](int u, int v) {
adj[u].push_back(v);
adj[v].push_back(u);
};
for (int i = 0; i < n; ++i) {
for (int j = i + 1; j < n; ++j) {
if (are_connected({i}, {j})) {
add_edge(i, j);
}
}
}
std::deque<int> dq;
dq.push_back(0);
std::vector<bool> vis(n);
vis[0] = true;
while (dq.size() != n) {
for (int &i : adj[dq.front()]) {
if (vis[i]) {
continue;
}
vis[i] = true;
dq.push_front(i);
}
for (int &i : adj[dq.back()]) {
if (vis[i]) {
continue;
}
vis[i] = true;
dq.push_back(i);
}
}
assert(dq.size() == n);
std::vector<int> ans;
for (int &i : dq) {
ans.push_back(i);
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |