#include <bits/stdc++.h>
using namespace std;
const int K=240;
vector<vector<pair<int,int>>> adj;
vector<vector<int>> g;
int j;
bool vis[10000], vis2[10000];
void dfs(int u){
vis[u]=true;
for(int i=0;i<K;i++){
g[i][j]=u;
}
j++;
for(auto [v,idx]:adj[u]){
if(vis[v]){
if(!vis2[idx]){
for(int i=0;i<K;i++){
g[i][j]=v;
}
j++;
for(int i=0;i<K;i++){
g[i][j]=u;
}
j++;
vis2[idx]=true;
}
continue;
}
vis2[idx]=true;
dfs(v);
for(int i=0;i<K;i++){
g[i][j]=u;
}
j++;
}
}
std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A, std::vector<int> B){
j=0;
memset(vis, 0, sizeof(vis));
memset(vis2, 0, sizeof(vis2));
adj.resize(0);
g.resize(0);
g.resize(K, vector<int> (K, -1));
adj.resize(N+1);
for(int i=0;i<M;i++){
adj[A[i]].push_back({B[i],i});
adj[B[i]].push_back({A[i],i});
}
dfs(1);
for(int i=0;i<K;i++){
for(int j0=0;j0<K;j0++){
if(g[i][j0]==-1){
g[i][j0-1]=g[i][j0];
}
}
}
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... |