Submission #1252240

#TimeUsernameProblemLanguageResultExecution timeMemory
1252240EJIC_B_KEDAXWorld Map (IOI25_worldmap)C++20
58 / 100
110 ms14204 KiB
#include "worldmap.h" #include <bits/stdc++.h> using namespace std; using ll = long long; vector<vector<int>> create_map(int n, int m, vector<int> a, vector<int> b) { vector<vector<int>> g(n); for (int i = 0; i < m; i++) { a[i]--; b[i]--; g[a[i]].push_back(b[i]); g[b[i]].push_back(a[i]); } int K = 5 * n; vector<vector<int>> ans(K, vector<int>(K, -1)); vector<int> used(n, 0); int cur = 0; auto dfs = [&](auto dfs, int s) -> void { used[s] = 1; for (int i = 0; i < K; i++) { ans[cur][i] = s + 1; } for (int i = 0; i < K / 2; i++) { if (g[s].size() > i) { ans[cur + 1][2 * i] = g[s][i] + 1; } else { ans[cur + 1][2 * i] = s + 1; } ans[cur + 1][2 * i + 1] = s + 1; } if (K & 1) { ans[cur + 1][K - 1] = s + 1; } for (int i = 0; i < K; i++) { ans[cur + 2][i] = s + 1; } cur += 3; for (int i : g[s]) { if (!used[i]) { dfs(dfs, i); for (int i = 0; i < K; i++) { ans[cur][i] = s + 1; } cur++; } } }; dfs(dfs, 0); for (; cur < K; cur++) { ans[cur] = ans[cur - 1]; } 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...