#include <bits/stdc++.h>
std::vector<std::vector<int>> adj;
std::vector<int> columns;
std::vector<bool> vis;
void dfs(int u, std::vector<int> &row) {
if (vis[u]) {
return;
}
vis[u] = true;
row.push_back(u);
columns[u] = row.size();
row.push_back(u);
row.push_back(u);
for (int &i : adj[u]) {
if (vis[i]) {
continue;
}
dfs(i, row);
row.push_back(u);
}
}
std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A,
std::vector<int> B) {
vis.resize(N + 1);
columns.resize(N + 1);
adj.resize(N + 1);
adj.clear();
vis.clear();
for (int i = 0; i < M; ++i) {
adj[A[i]].push_back(B[i]);
adj[B[i]].push_back(A[i]);
}
std::vector<int> row;
dfs(1, row);
std::vector ans(row.size(), row);
for (int i = 1; i <= N; ++i) {
int j = 0;
for (int &u : adj[i]) {
ans[j][columns[i]] = u;
j += 2;
}
}
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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |