Submission #854452

#TimeUsernameProblemLanguageResultExecution timeMemory
854452vjudge1Odašiljači (COCI20_odasiljaci)C++17
70 / 70
59 ms14276 KiB
#pragma GCC optimize("unroll-loops,Ofast,O3") #include <bits/stdc++.h> #define pb push_back #define mp make_pair #define spc << " " << #define endl "\n" #define all(x) x.begin(), x.end() #define ll long long #define int long long #define ii pair<int,int> #define vi vector<int> #define vii vector<ii> #define st first #define nd second #define inf 1000000009 #define MOD 1000000007 #define lim 200005 using namespace std; int dad[1005]; int find(int x){ if(dad[x]==x) return x; return dad[x] = find(dad[x]); } void unite(int x, int y){ dad[find(x)] = find(y); } void solve(){ int n; cin >> n; for(int i=1; i<=n; i++){ dad[i]=i; } ii arr[n+1]; for(int i=1; i<=n; i++) cin >> arr[i].st >> arr[i].nd; vector<tuple<double, int, int>> wow; for(int i=1; i<=n; i++){ for(int j=i+1; j<=n; j++){ int sq1, sq2; sq1 = (arr[i].st-arr[j].st)*(arr[i].st-arr[j].st); sq2 = (arr[i].nd-arr[j].nd)*(arr[i].nd-arr[j].nd); wow.pb({sqrt(((double)sq1 + (double)sq2))/(double)2, i, j}); //cerr << sqrt((double)sq1 + (double)sq2) / ((double)2) << endl; } } sort(all(wow)); double ans; for(auto t:wow){ //cerr << get<0>(t) << endl; int a=get<1>(t),b=get<2>(t); if(find(a)==find(b)) continue; unite(a,b); ans = get<0>(t); } cout << setprecision(15) << ans << endl; } signed main(){ ios_base::sync_with_stdio(false);cin.tie(0); #ifdef Local freopen("in","r",stdin); freopen("out","w",stdout); #endif ll t=1; //cin >> t; while(t--) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...