Submission #1290841

#TimeUsernameProblemLanguageResultExecution timeMemory
1290841ecen30World Map (IOI25_worldmap)C++20
0 / 100
2 ms572 KiB
//testing AI COde #include "worldmap.h" #include <bits/stdc++.h> using namespace std; // We create a DFS order of the adjacency graph and use it as the linear ordering. // Then we place that ordering onto a cyclic Latin torus grid of size K = N. vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B) { vector<vector<int>> G(N+1); for (int i = 0; i < M; i++) { G[A[i]].push_back(B[i]); G[B[i]].push_back(A[i]); } // --- Step 1: DFS order to linearize the adjacency graph --- vector<int> order; vector<int> vis(N+1, 0); function<void(int)> dfs = [&](int u) { vis[u] = 1; order.push_back(u); for (int v : G[u]) if (!vis[v]) dfs(v); }; // Graph might be disconnected → start DFS from all nodes. for (int i = 1; i <= N; i++) if (!vis[i]) dfs(i); // Build reverse mapping: newLabel[country] = position in DFS order vector<int> newLabel(N+1); for (int i = 0; i < N; i++) newLabel[order[i]] = i + 1; // 1..N // --- Step 2: K = N --- int K = N; vector<vector<int>> C(K, vector<int>(K)); // --- Step 3: Fill torus grid with cyclic pattern --- for (int r = 0; r < K; r++) { for (int c = 0; c < K; c++) { int id = 1 + (r + c) % N; // id in 1..N // Map id back to original country int country = order[id - 1]; // inverse of newLabel C[r][c] = country; } } return C; }
#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...