Submission #1250993

#TimeUsernameProblemLanguageResultExecution timeMemory
1250993countlessWorld Map (IOI25_worldmap)C++20
72 / 100
74 ms9544 KiB
#include "worldmap.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; #define sp <<" "<< #define endl "\n" vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B) { vector<vector<pair<int, int>>> adj(N+1); for (int i = 0; i < M; i++) { adj[A[i]].emplace_back(B[i], i); adj[B[i]].emplace_back(A[i], i); } vector<int> sigma; vector<bool> vis(M); auto dfs = [&](auto &&dfs, int u) -> void { sigma.push_back(u); for (auto &[v, id] : adj[u]) { if (vis[v]) continue; vis[v] = true; dfs(dfs, v); sigma.push_back(u); } }; dfs(dfs, 1); cerr << N sp sigma.size() << endl; vector<int> rizzler, loc(N+1, 0); vector<bool> vis2(N+1); for (auto &x : sigma) { if (vis2[x]) rizzler.emplace_back(x); else { vis2[x] = true; rizzler.emplace_back(x); loc[x] = rizzler.size(); rizzler.emplace_back(x); rizzler.emplace_back(x); } } cerr << N sp rizzler.size() << endl; rizzler.pop_back(); int K = rizzler.size(); vector<vector<int>> ans(K, vector<int>(K)); for (int i = 0; i < K; i++) { ans[i] = rizzler; } vector<vector<bool>> vis3(N+1, vector<bool>(N+1)); for (int i = 1; i <= N; i++) { int j = loc[i], k = 0; for (auto &[v, id] : adj[i]) { if (vis3[i][v]) continue; vis3[i][v] = true; ans[k][j] = v; k += 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...