제출 #1250934

#제출 시각아이디문제언어결과실행 시간메모리
1250934lukameladze세계 지도 (IOI25_worldmap)C++20
5 / 100
1142 ms2162688 KiB
#include "worldmap.h" #include <vector> #include <algorithm> #include <cstdio> #include <cassert> #include <iostream> #define pb push_back using namespace std; const int MX = 1005; vector <int> v[MX], be[MX], de[MX]; vector <int> ord; void dfs(int a, int p, vector<int> &fix) { fix[a] = 1; ord.pb(a); for (int to : v[a]) { if (to == p) continue; // if (fix[to]) { // be[a].pb(to); // } else { // de[a].pb(to); // } dfs(to, a, fix); } if (p != 0 && v[a].size() != 1) { ord.pb(a); } } std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A, std::vector<int> B) { int n = N; ord.clear(); for (int i = 0; i <= N; i++) { v[i].clear(); be[i].clear(); de[i].clear(); } for (int i = 0; i < M; i++) { v[A[i]].push_back(B[i]); v[B[i]].push_back(A[i]); } vector <int> fix(n + 1, 0); dfs(1, 0, fix); vector <vector<int>> ans; ans.clear(); for (int i = 0; i < ord.size(); i++) { vector <int> vec; for (int j = 0; j < ord.size(); j++) { vec.pb(ord[i]); } ans.pb(vec); } for (int i = 0; i <= N; i++) { v[i].clear(); be[i].clear(); de[i].clear(); } 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...