Submission #1315436

#TimeUsernameProblemLanguageResultExecution timeMemory
1315436ezzzayWorld Map (IOI25_worldmap)C++20
0 / 100
1 ms412 KiB
#include <bits/stdc++.h> using namespace std; vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B) { vector<vector<int>> adj(N); for (int i = 0; i < M; i++) { int u = A[i] - 1, v = B[i] - 1; adj[u].push_back(v); adj[v].push_back(u); } vector<vector<int>> paths; vector<vector<int>> used(N, vector<int>(N, 0)); // mark edges for (int i = 0; i < M; i++) { int u = A[i] - 1, v = B[i] - 1; used[u][v] = used[v][u] = 1; } // extract paths while (true) { int start = -1; for (int i = 0; i < N; i++) { for (int j : adj[i]) { if (used[i][j]) { start = i; break; } } if (start != -1) break; } if (start == -1) break; vector<int> path; int cur = start, prev = -1; while (true) { path.push_back(cur); int nxt = -1; for (int v : adj[cur]) { if (v != prev && used[cur][v]) { nxt = v; break; } } if (nxt == -1) break; used[cur][nxt] = used[nxt][cur] = 0; prev = cur; cur = nxt; } paths.push_back(path); } int rows = N; int cols = max(1, (int)paths.size()); int K = max(rows, cols); vector<vector<int>> grid(K, vector<int>(K, 1)); // place each path in a column for (int c = 0; c < (int)paths.size(); c++) { for (int r = 0; r < (int)paths[c].size(); r++) { grid[r][c] = paths[c][r] + 1; } } // ensure every country appears for (int i = 0; i < N; i++) { grid[i][0] = i + 1; } return grid; }
#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...