#include <bits/stdc++.h>
using namespace std;
const int NR = 42;
vector<int> v[NR];
bool done[NR];
int n, m, res[NR * 10][NR * 10], lines;
void fill(int node)
{
int nr = 0;
for (int i = 0; i < v[node].size(); ++i)
{
res[lines][nr] = v[node][i];
res[lines][nr + 1] = node;
nr += 2;
}
for (int i = nr; i < NR * 10; ++i)
res[lines][i] = node;
++lines;
for (int i = 0; i < NR * 10; ++i)
res[lines][i] = node;
++lines;
}
void solve(int node)
{
bool did = false;
for (int i = 0; i < v[node].size(); ++i)
{
if (!done[v[node][i]])
{
did = true;
}
}
if(!did) {
return;
}
done[node] = 1;
for (int i = 0; i < NR * 10; ++i)
res[lines][i] = node;
++lines;
fill(node);
did = false;
for (int i = 0; i < v[node].size(); ++i)
{
if (!done[v[node][i]])
{
did = true;
solve(v[node][i]);
}
}
if (!did)
return;
for (int i = 0; i < NR * 10; ++i)
res[lines][i] = node;
++lines;
}
vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B)
{
n = N;
m = M;
for (int i = 0; i < n; ++i)
{
v[i].clear();
done[i] = 0;
}
lines = 0;
for (int i = 0; i < m; ++i)
{
v[A[i]].push_back(B[i]);
}
solve(1);
vector<vector<int>> re;
for (int i = 0; i < lines; ++i)
{
vector<int> a;
re.push_back(a);
for (int j = 0; j < lines; ++j)
{
re[i].push_back(res[i][j]);
}
}
return re;
}
# | 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... |