제출 #1263058

#제출 시각아이디문제언어결과실행 시간메모리
1263058nerrrmin세계 지도 (IOI25_worldmap)C++20
0 / 100
1167 ms2162688 KiB
#include "worldmap.h" #define pb push_back #include <bits/stdc++.h> using namespace std; const int maxn = 1000; int n, m; vector < int > g[maxn]; int col[maxn]; vector < int > path; void dfs(int beg, int from) { path.pb(beg); for(auto nb: g[beg]) { if(nb == from)continue; 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) { n = N; m = M; for (int i = 0; i <= 2*n; ++ i) g[i].clear(); for (int i = 0; i < m; ++ i) { g[A[i]].pb(B[i]); g[B[i]].pb(A[i]); } dfs(1, 0); int szp = path.size(); 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; for (int i = 0; i < 2*n; ++ i) { if(col[i] == 1) { for (int j = 0; j < 2*n; ++ j) ans[i][j] = 1; } else { int v = col[i]; int j = 0; for (auto x: g[v]) { ans[i][j] = x; j ++; ans[i][j] = v; j ++; } while(j < 2*n) { ans[i][j] = v; 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...