Submission #1254852

#TimeUsernameProblemLanguageResultExecution timeMemory
1254852TimoshWorld Map (IOI25_worldmap)C++20
72 / 100
158 ms9544 KiB
#include "bits/stdc++.h" #include "worldmap.h" using namespace std; vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B) { vector<std::vector<int>> ans(4 * N, vector<int>(4 * N, 1)); if (M == 0) return ans; vector<int> vis(N + 1); vector<vector<int>> g(N + 1); for (int i = 0; i < M; i++) g[A[i]].push_back(B[i]); for (int i = 0; i < M; i++) g[B[i]].push_back(A[i]); int line = 0; auto dfs = [&](auto dfs, int node) -> void { vis[node] = 1; for (int i = 0; i < 3; i++) for (int j = 0; j < 4 * N; j++) ans[i + line][j] = node; int off = 0; for (auto &x : g[node]) { ans[line + 1][off] = x; off += 2; } line += 3; for (auto &x : g[node]) { if (vis[x]) continue; dfs(dfs, x); for (int j = 0; j < 4 * N; j++) ans[line][j] = node; line++; } }; int k = 1; while (g[k].size() == 0) k++; dfs(dfs, k); for (int i = line; i < 4 * N; i++) for (int j = 0; j < 4 * N; j++) ans[i][j] = k; 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...