# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
485374 | 2021-11-07T12:36:43 Z | alexdumitru | Odašiljači (COCI20_odasiljaci) | C++14 | 545 ms | 3460 KB |
#include <bits/stdc++.h> #define a first #define b second using namespace std; int i,n,j,nr,viz[1005]; long double rez,delta=0.000000000001; pair<int, int> v[1005]; vector<vector<int> > g; void dfs(int nod=1) { nr++; viz[nod]=1; for(int i=0;i<g[nod].size();i++) if(!viz[g[nod][i]]) dfs(g[nod][i]); } int main() { cin>>n; for(i=1;i<=n;i++) cin>>v[i].a>>v[i].b; long double st=0,dr=1000000000; while(dr-st>delta) { long double m=(st+dr)/2; nr=0; g.clear(); for(i=1;i<=n+1;i++) { viz[i]=0; g.push_back({}); } for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) { long double x=sqrt((v[i].a-v[j].a)*(v[i].a-v[j].a)+(v[i].b-v[j].b)*(v[i].b-v[j].b)); if(x<=m*2) { g[i].push_back(j); g[j].push_back(i); } } dfs(); if(nr==n) { rez=m; dr=m; } else st=m; } cout<<fixed<<setprecision(7)<<rez; return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 204 KB | Output is correct |
2 | Correct | 0 ms | 204 KB | Output is correct |
3 | Correct | 2 ms | 204 KB | Output is correct |
4 | Incorrect | 4 ms | 332 KB | Output isn't correct |
5 | Incorrect | 7 ms | 348 KB | Output isn't correct |
6 | Correct | 87 ms | 1408 KB | Output is correct |
7 | Correct | 83 ms | 1384 KB | Output is correct |
8 | Correct | 185 ms | 3460 KB | Output is correct |
9 | Incorrect | 537 ms | 3168 KB | Output isn't correct |
10 | Incorrect | 545 ms | 3440 KB | Output isn't correct |