Submission #1249697

#TimeUsernameProblemLanguageResultExecution timeMemory
1249697QwertyPiWorld Map (IOI25_worldmap)C++20
15 / 100
1189 ms2162688 KiB
#include "worldmap.h" #include <bits/stdc++.h> using namespace std; const int N_MAX = 40 + 11; vector<int> G[N_MAX]; vector<vector<int>> regulate(vector<vector<int>> board) { int n = board.size(), m = board[0].size(); int K = max(n, m); vector ans = vector(K, vector<int>(K)); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { ans[i][j] = board[i][j]; } } for (int i = 0; i < K; i++) { for (int j = 0; j < K; j++) { if (!ans[i][j]) { if (j > 0 && ans[i][j - 1]) ans[i][j] = ans[i][j - 1]; else if (i > 0 && ans[i - 1][j]) ans[i][j] = ans[i - 1][j]; else assert(false); } } } // for (int i = 0; i < K; i++) { // for (int j = 0; j < K; j++) { // cout << ans[i][j] << ' '; // } // cout << '\n'; // } return ans; } vector<int> st; void dfs(int v, int pa = -1) { for (int u : G[v]) { if (u == pa) continue; st.push_back(u); dfs(u, v); st.push_back(v); } } vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B) { vector ans = vector((N - 1) * 2 + 1, vector<int>(1)); for (int i = 1; i <= N; i++) { G[i].clear(); } for (int i = 0; i < M; i++) { G[A[i]].push_back(B[i]); G[B[i]].push_back(A[i]); } st = vector<int>{1}; dfs(1); // for (auto x : st) cout << x << ' '; cout << endl; for (int i = 0; i < ans.size(); i++) { ans[i][0] = st[i]; } return regulate(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...