Submission #1152271

#TimeUsernameProblemLanguageResultExecution timeMemory
1152271zhehanOdašiljači (COCI20_odasiljaci)C++20
21 / 70
128 ms16796 KiB
#include <bits/stdc++.h> using namespace std; typedef pair<int,int> ii; typedef pair<double,ii> dii; double dist(ii a, ii b){ return pow(((a.first-b.first)*(a.first-b.first)+(a.second-b.second)*(a.second-b.second)),0.5); } vector<int> ufds; int search(int p){ if(ufds[p]==-1){ return p; } return ufds[p] = search(ufds[p]); } void join(int a, int b){ ufds[search(a)] = search(b); } int main(){ int n; cin>>n; vector<ii> antenna(n,ii()); ufds = vector<int> (n,-1); for (int i=0;i<n;++i){ cin>>antenna[i].first>>antenna[i].second; } priority_queue<dii,vector<dii>,greater<dii>> mst; for(int i=0;i<n;++i){ for (int j=0;j<n;++j){ mst.push(dii(dist(antenna[i],antenna[j]),ii(i,j))); } } double max_dist = 0; while(!mst.empty()){ auto curr = mst.top(); mst.pop(); double dist=curr.first; int a = curr.second.first, b = curr.second.second; if(search(a)==search(b)) continue; join(a,b); max_dist = max(max_dist, dist); } cout<<max_dist/2; }
#Verdict Execution timeMemoryGrader output
Fetching results...