#include <bits/stdc++.h>
using namespace std;
vector<int>adj[41];
bitset<41>v,u;
int order[81],cnt,poz,x,y;
void dfs(int node)
{
    v[node]=1;
    cnt++;
    order[cnt]=node;
    for(auto it : adj[node])
        if(!v[it])
            dfs(it);
    cnt++;
    order[cnt]=node;
}
vector<vector<int>> create_map(int n, int m,vector<int> a, vector<int> b)
{
    vector<vector<int>>mat(4*n,vector<int>(4*n));
    cnt=0;
    v.reset();
    u.reset();
    for(int i=0; i<m; ++i)
    {
        adj[a[i]].push_back(b[i]);
        adj[b[i]].push_back(a[i]);
    }
    dfs(1);
    x=-1;
    for(int i=1; i<=cnt; ++i)
    {
        x++;
        y=0;
        for(; y<n*6; ++y)
            mat[x][y]=order[i];
        if(!u[order[i]])
    {
        x++;
        y=0;
        poz=0;
        for(; y<n*6; ++y)
            {
                if(poz==adj[order[i]].size() || y%2)
                    mat[x][y]=order[i];
                else
                    mat[x][y]=adj[order[i]][poz],poz++;
            }
            y=0;
            x++;
            for(; y<n*6; ++y)
                mat[x][y]=order[i];
        }
    }
    return mat;
}
| # | 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... |