제출 #1254874

#제출 시각아이디문제언어결과실행 시간메모리
1254874PenguinsAreCute세계 지도 (IOI25_worldmap)C++20
86 / 100
44 ms5704 KiB
#include "worldmap.h" #include <bits/stdc++.h> using namespace std; std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A, std::vector<int> B) { vector<vector<int>> adj(N); for(int i=0;i<M;i++) { adj[A[i]-1].push_back(B[i]-1); adj[B[i]-1].push_back(A[i]-1); } vector<vector<int>> ans; vector<bool> vis(N); auto dfs = [&adj,&vis,&ans,N,cnt=0](auto &dfs, int x) mutable -> void { vis[x] = 1; vector<int> nw; for(auto i: adj[x]) { if(cnt&1) { nw.push_back(x+1); nw.push_back(i+1); } else { nw.push_back(i+1); nw.push_back(x+1); } } while(nw.size()<3*N) nw.push_back(x+1); ans.push_back(nw); cnt++; for(auto i: adj[x]) if(!vis[i]) { vector<int> v; for(int j=0;j<3*N;j++) v.push_back(((j^cnt)&1?x:i)+1); ans.push_back(v); dfs(dfs, i); v.clear(); for(int j=0;j<3*N;j++) v.push_back(((j^cnt)&1?i:x)+1); ans.push_back(v); } }; dfs(dfs,0); while(ans.size()<3*N) ans.push_back(vector<int>(3*N,1)); 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...