#include "worldmap.h"
#define pb push_back
#include <bits/stdc++.h>
using namespace std;
const int maxn = 55;
int n, m;
vector < pair < int, int > > g[maxn];
int col[maxn];
vector < int > path;
int used[maxn];
int mark[500];
void dfs(int beg, int from)
{
path.pb(beg);
used[beg] = 1;
for(auto &[nb, i]: g[beg])
{
if(nb == from)
{
continue;
}
if(used[nb])
{
if(!mark[i])
{
path.pb(nb);
path.pb(beg);
}
continue;
}
mark[i] = 1;
dfs(nb, beg);
path.pb(beg);
}
}
std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A, std::vector<int> B)
{
assert(M >= N-1);
n = N;
m = M;
path.clear();
for (int i = 1; i <= n; ++ i)
used[i] = 0;
for (int i = 0; i <= 240; ++ i)
mark[i] = 0;
for (int i = 0; i <= 2*n; ++ i)
g[i].clear();
for (int i = 0; i < m; ++ i)
{
g[A[i]].pb({B[i], i});
g[B[i]].pb({A[i], i});
}
dfs(1, 0);
int szp = path.size();
assert(szp <= 300);
std::vector<std::vector<int>> ans(szp, std::vector<int>(szp, 0));
for (int j = 0; j < szp; ++ j)
ans[0][j] = path[j];
for (int i = 1 ; i < szp; ++ i)
{
for(int j = 0; j < szp; ++ j)
ans[i][j] = ans[i-1][j];
}
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... |