Submission #1263080

#TimeUsernameProblemLanguageResultExecution timeMemory
1263080nerrrminWorld Map (IOI25_worldmap)C++20
15 / 100
14 ms2116 KiB
#include "worldmap.h" #define pb push_back #include <bits/stdc++.h> using namespace std; const int maxn = 55; int n, m; vector < pair < int, int > > g[maxn]; int col[maxn]; vector < int > path; int used[maxn]; int mark[500]; void dfs(int beg, int from) { path.pb(beg); used[beg] = 1; for(auto &[nb, i]: g[beg]) { if(nb == from) { continue; } if(used[nb]) { if(!mark[i]) { path.pb(nb); path.pb(beg); } continue; } mark[i] = 1; dfs(nb, beg); path.pb(beg); } } std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A, std::vector<int> B) { assert(M >= N-1); n = N; m = M; path.clear(); for (int i = 1; i <= n; ++ i) used[i] = 0; for (int i = 0; i <= 240; ++ i) mark[i] = 0; for (int i = 0; i <= 2*n; ++ i) g[i].clear(); for (int i = 0; i < m; ++ i) { g[A[i]].pb({B[i], i}); g[B[i]].pb({A[i], i}); } dfs(1, 0); int szp = path.size(); assert(szp <= 300); std::vector<std::vector<int>> ans(szp, std::vector<int>(szp, 0)); for (int j = 0; j < szp; ++ j) ans[0][j] = path[j]; for (int i = 1 ; i < szp; ++ i) { for(int j = 0; j < szp; ++ j) ans[i][j] = ans[i-1][j]; } 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...