#include "worldmap.h"
#include <bits/stdc++.h>
#define pb push_back
#define ll long long
#define fi first
#define se second
using namespace std;
typedef pair<int,int> pii;
const int MAXN = 2e5+10;
int n, m;
vector<pii> adj[MAXN];
bool vis[MAXN], use[MAXN];
vector<pii> stac;
void dfs(int nw, int pa){
stac.pb({nw, 1});
vis[nw] = 1;
for(auto [nx, ed] : adj[nw]){
if(vis[nx]) continue;
use[ed] = 1;
dfs(nx, nw);
}
if(pa != 0) stac.pb({pa, 0});
}
std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A, std::vector<int> B) {
n = N; m = M;
for(int i=0; i<m; i++){
adj[A[i]].pb({B[i], i}); adj[B[i]].pb({A[i], i});
}
dfs(1, 0);
vector<vector<int>> ans;
for(auto [idx, ty] : stac){
vector<int> need;
for(auto [nx, ed] : adj[idx]){
if(!use[ed]){
use[ed] = 1;
need.pb(nx);
}
}
if(ty==1 && need.size()){
ans.pb({idx});
vector<int> vec;
for(auto in : need)
vec.pb(idx), vec.pb(in);
ans.pb(vec);
ans.pb({idx});
} else {
ans.pb({idx});
}
}
int siz = ans.size();
vector<vector<int>> ret;
for(auto vec : ans){
vector<int> mas = vec;
while(mas.size() < siz) mas.pb(mas[0]);
ret.pb(mas);
}
for(int i=0; i<=max(n, m); i++){
vis[i] = 0; use[i] = 0;
adj[i].clear();
}
stac.clear();
return ret;
}
# | 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... |