Submission #1206439

#TimeUsernameProblemLanguageResultExecution timeMemory
1206439Aviansh도시들 (IOI15_towns)C++20
25 / 100
10 ms328 KiB
#include "towns.h" #include <bits/stdc++.h> using namespace std; struct dsu{ vector<int>root; vector<int>siz; int mxsiz=1; dsu(int n){ root=vector<int>(n); iota(root.begin(),root.end(),0); siz=vector<int>(n,1); } int findRoot(int x){ if(x==root[x]) return x; return root[x]=findRoot(root[x]); } bool unite(int x, int y){ x=findRoot(x); y=findRoot(y); if(x==y) return 0; if(siz[x]<siz[y]) swap(x,y); siz[x]+=siz[y]; root[y]=x; mxsiz=max(mxsiz,siz[x]); return 1; } }; int hubDistance(int n, int sub) { int dists[n]; dists[0]=0; for(int i = 1;i<n;i++){ dists[i] = getDistance(0,i); } int u = max_element(dists,dists+n)-dists; dists[u]=0; for(int i = 0;i<n;i++){ if(i==u) continue; dists[i]=getDistance(u,i); } int v = max_element(dists,dists+n)-dists; int ans = dists[v]; for(int i = 0;i<n;i++){ int cd = (dists[i]+dists[v]-getDistance(i,v))/2; cd=max(cd,dists[v]-cd); ans=min(ans,cd); } 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...