제출 #949932

#제출 시각아이디문제언어결과실행 시간메모리
949932Saul0906Hotspot (NOI17_hotspot)C++14
38 / 100
7 ms16312 KiB
#include <bits/stdc++.h> #define rep(a,b,c) for(int a=b; a<c; a++) #define repa(a,b) for(auto a: b) #define pb push_back using namespace std; const int lim=5e5+5; vector<int> ady[lim]; int cont[lim]{}, par[lim]{}, lvl[lim]{}; bool vis[lim]{}; void solve(int u, int v){ if(lvl[u]<lvl[v]) swap(u,v); while(lvl[u]>lvl[v]){ cont[u]++; u=par[u]; } while(u!=v){ cont[u]++; cont[v]++; u=par[u]; v=par[v]; } cont[u]++; } void dfs(int u, int p){ vis[u]=true; par[u]=p; if(p!=-1) lvl[u]=lvl[p]+1; repa(v,ady[u]) if(!vis[v]) dfs(v,u); } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, m, k, u, v; cin>>n>>m; rep(i,0,m){ cin>>u>>v; ady[u].pb(v); ady[v].pb(u); } dfs(0,-1); cin>>k; rep(i,0,k){ cin>>u>>v; solve(u,v); } u=0; rep(i,0,lim) if(cont[u]<cont[i]) u=i; cout<<u<<endl; }
#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...