#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;
        }
    }
    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... |