제출 #1252840

#제출 시각아이디문제언어결과실행 시간메모리
1252840madamadam3World Map (IOI25_worldmap)C++20
0 / 100
1 ms580 KiB
#include "worldmap.h" #include <bits/stdc++.h> using namespace std; using vi = vector<int>; using vvi = vector<vi>; void dfs(int u, vector<bool> &vis, vvi &adj, vi &tour) { vis[u] = true; tour.push_back(u); for (int v : adj[u]) { if (vis[v]) continue; dfs(v, vis, adj, tour); tour.push_back(u); } } vvi create_map(int n, int m, vi a, vi b) { vvi adj(n+1, vi()); for (int i = 0; i < m; i++) adj[a[i]].push_back(b[i]), adj[b[i]].push_back(a[i]); vector<bool> vis(n+1, false); vi tour; set<int> seen; dfs(1, vis, adj,tour); vvi ans(1); vector<int> ridx(n); for (int i = 0; i < tour.size(); i++) { if (!seen.count(tour[i])) { ans[0].push_back(tour[i]); ridx[tour[i]] = ans[0].size(); ans[0].push_back(tour[i]); } ans[0].push_back(tour[i]); seen.insert(tour[i]); } for (int i = 0; i < n; i++) ans[0].push_back(1); int K = ans[0].size(); for (int i = 1; i < K; i++) { ans.push_back(vi(K)); for (int j = 0; j < K; j++) { ans[i][j] = ans[i-1][j]; } } for (int i = 0; i < n; i++) { int r = ridx[i]; int cc = 1; for (auto &el : adj[i]) { ans[cc][r] = el; cc += 2; } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...