| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 | 
|---|---|---|---|---|---|---|---|
| 401316 | jenkinsser | Odašiljači (COCI20_odasiljaci) | C++17 | 160 ms | 400 KiB | 
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define FOR(ii,aa,bb) for(int ii=aa;ii<bb;ii++)
#define for0(ii,bb) FOR(ii,0,bb)
#define for1(ii,bb) FOR(ii,1,bb+1)
#define pb push_back
#define ppb pop_back
#define mp make_pair
#define st first
#define nd second
#define pii pair<int,int>
#define piii pair<int,pii>
#define piiii pair<pii,pii>
#define pdi pair<double,int>
#define vi vector<int>
#define sp " "
#define nl "\n"
#define all(x) x.begin(),x.end()
#define fastio() ios_base::sync_with_stdio(0);cin.tie(0);
#define ll long long
#define int ll
using namespace std;
const int N = 1005;
const int INF = 1e9+5;
const double epsilon = 1e-7;
const int mod = 1e9+7;
struct point{
    int x,y;
};
int n,vis[N];
point points[N];
double calc(point a,point b){
    return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);
}
void dfs(int v,double r){
    // cout << v << sp << r << nl;
    vis[v]=1;
    for(int i=1;i<=n;i++){
        if(!vis[i]&&calc(points[v],points[i])<4.0*r*r){
            dfs(i,r);
        }
    }
}
bool check(){
    for(int i=1;i<=n;i++){
        // cout << vis[i] << sp;
        if(!vis[i])
            return false;
    }
    return true;
}
signed main(){
    fastio()
    cin >> n;
    for(int i=1;i<=n;i++){
        cin >> points[i].x >> points[i].y;
    }
    double l=0,r=INF;
    while(r-l>epsilon){
        double m=(l+r)/2;
        // cout << m << nl;
        memset(vis,0,sizeof(vis));
        dfs(1,m);
        if(check())
            r=m;
        else
            l=m;
    }
    cout << setprecision(7) << l << nl;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
