Submission #1249933

#TimeUsernameProblemLanguageResultExecution timeMemory
1249933PanosPaskWorld Map (IOI25_worldmap)C++20
15 / 100
32 ms4424 KiB
#include "worldmap.h" #define pb push_back using namespace std; vector<vector<int>> ans; vector<vector<int>> adj_list; vector<bool> visited; int row; int cnt = 0; void fill(int color) { for (int i = 0; i < ans[row].size(); i++) { if (ans[row][i] == 0) { ans[row][i] = color; } } row++; } bool dfs(int node) { if (visited[node]) { return false; } visited[node] = true; cnt++; fill(node); if (cnt % 2) { for (int i = 0; i < adj_list[node].size(); i++) { ans[row][2 * i] = adj_list[node][i]; } fill(node); fill(node); } for (auto neigh : adj_list[node]) { if (dfs(neigh)) { fill(node); } } return true; } vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B) { ans.assign(3 * N, vector<int>(3 * N, 0)); adj_list.assign(N + 1, vector<int>()); visited.assign(N + 1, false); for (int i = 0; i < M; i++) { adj_list[A[i]].pb(B[i]); adj_list[B[i]].pb(A[i]); } row = 0; dfs(1); while (row < ans.size()) { fill(ans[row - 1][0]); } 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...