제출 #1254215

#제출 시각아이디문제언어결과실행 시간메모리
1254215nickolasarapidis세계 지도 (IOI25_worldmap)C++20
0 / 100
9 ms6724 KiB
#include "worldmap.h" #include <bits/stdc++.h> using namespace std; vector<int> adj[45]; vector<int> et; vector<bool> visited(45); void dfs(int s, int e){ if(visited[s]) return; visited[s] = true; et.push_back(s); for(auto u : adj[s]){ if(u == e) continue; dfs(u, s); et.push_back(s); } } vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B){ for(int i = 0; i < 45; i++){ adj[i].clear(); } et.clear(); for(int i = 0; i < 45; i++){ visited[i] = false; } for(int i = 0; i < M; i++){ adj[A[i]].push_back(B[i]); adj[B[i]].push_back(A[i]); } dfs(1, -1); vector<vector<int>> ans(3*et.size(), vector<int>(3*et.size())); int cnt = 0; for(int i = 0; i < et.size(); i++){ for(int j = 0; j < 3*et.size(); j++){ ans[cnt][j] = et[i]; } for(int j = 0; j < 3*et.size(); j++){ ans[cnt + 1][j] = et[i]; } for(int j = 0; j < 3*et.size(); j++){ ans[cnt + 2][j] = et[i]; } for(int j = 0; j < 2*adj[(i/2) + 1].size(); j += 2){ ans[cnt + 1][j] = adj[(i/2) + 1][j/2]; } cnt += 3; } 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...