#include <bits/stdc++.h>
using namespace std;
const int MAXN=41;
bool vis[MAXN], vis2[MAXN];
vector<int> path;
vector<vector<int>> adj;
void dfs(int u){
path.push_back(u);
vis[u]=true;
for(auto v:adj[u]){
if(!vis[v]){
dfs(v);
path.push_back(v);
}
}
}
std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A, std::vector<int> B){
adj.resize(0);
adj.resize(N+1);
memset(vis, 0, sizeof(vis));
memset(vis2, 0, sizeof(vis2));
path.clear();
for(int i=0;i<M;i++){
adj[A[i]].push_back(B[i]);
adj[B[i]].push_back(A[i]);
}
dfs(1);
int sz=path.size();
vector<vector<int>> g(4*N, vector<int>(4*N));
int i=0;
for(int j=0;j<sz;j++){
int u=path[j];
fill(g[i].begin(), g[i].end(), u);
i++;
if(!vis2[u]){
int jj=0;
fill(g[i].begin(), g[i].end(), u);
for(auto v:adj[u]){
g[i][jj]=v;
jj+=2;
}
i++;
fill(g[i].begin(), g[i].end(), u);
i++;
vis2[u]=true;
}
}
while(i<4*N){
fill(g[i].begin(), g[i].end(), path.back());
i++;
}
return g;
}
# | 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... |