제출 #1263197

#제출 시각아이디문제언어결과실행 시간메모리
1263197vtnoo세계 지도 (IOI25_worldmap)C++20
29 / 100
195 ms18988 KiB
#include <bits/stdc++.h> using namespace std; const int K=240; vector<vector<pair<int,int>>> adj; vector<vector<int>> g; int j; bool vis[10000], vis2[10000]; void dfs(int u){ vis[u]=true; for(int i=0;i<K;i++){ g[i][j]=u; } j++; for(auto [v,idx]:adj[u]){ if(vis[v]){ if(!vis2[idx]){ for(int i=0;i<K;i++){ g[i][j]=v; } j++; for(int i=0;i<K;i++){ g[i][j]=u; } j++; vis2[idx]=true; } continue; } vis2[idx]=true; dfs(v); for(int i=0;i<K;i++){ g[i][j]=u; } j++; } } std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A, std::vector<int> B){ j=0; memset(vis, 0, sizeof(vis)); memset(vis2, 0, sizeof(vis2)); adj.resize(0); g.resize(0); g.resize(K, vector<int> (K, -1)); adj.resize(N+1); for(int i=0;i<M;i++){ adj[A[i]].push_back({B[i],i}); adj[B[i]].push_back({A[i],i}); } dfs(1); for(int i=0;i<K;i++){ for(int j0=0;j0<K;j0++){ if(g[i][j0]==-1){ g[i][j0]=g[i][j0-1]; } } } return g; }
#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...