# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1265787 | thenpc | World Map (IOI25_worldmap) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#include "worldmap.h"
using namespace std;
#define ll long long
int visited[50];
vector<int> path;
void dfs(int u) {
visited[u] = 1;
path.push_back(u);
for (int v : adj[u]) {
if (!visited[v]) {
dfs(v);
path.push_back(u);
}
}
}
vector<vector<int>> create_map(int n,int m,vector<int> a,vector<int> b){
path.clear();
vector<vector<int>> v;
vector<int> u,adj[50];
for(int i=0;i<m;i++){
adj[a[i]].push_back(b[i]);
adj[b[i]].push_back(a[i]);
}
for(int i=1;i<=n;i++){
visited[i]=0;
}
dfs(1);
for(int i=0;i<path.size();i++){
for(int j=1;j<=path.size()*3;j++){
u.push_back(path[i]);
}
v.push_back(u);
u.clear();
for(int j=0;j<adj[path[i]].size();j++){
u.push_back(path[i]);
u.push_back(adj[path[i]][j]);
}
for(int j=2*adj[path[i]].size()+1;j<=path.size()*3;j++){
u.push_back(path[i]);
}
v.push_back(u);
u.clear();
for(int j=1;j<=path.size()*3;j++){
u.push_back(path[i]);
}
v.push_back(u);
u.clear();
}
return v;
}