답안 #876099

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
876099 2023-11-21T08:54:49 Z Danet Odašiljači (COCI20_odasiljaci) C++14
70 / 70
181 ms 604 KB
#include<bits/stdc++.h>
using namespace std;
#pragma GCC optimize("O3")

#define tof_io  ios_base::sync_with_stdio(false);cin.tie(0) , cout.tie(0);
#define double  long double
#define int     long long
#define pb      push_back

#define all(x)  x.begin(),x.end()
#define endl    '\n'
#define sz(x) 	x.size()
const int mod = 1e9 + 7; //998244353 1e9+7 1e9+9
const int N = 2e4 + 1;	
const int lg = 23;
const int eps = 1e-9;
const int inf = 1e9;
int fac[N];
int inv[N];
int n, timer = 0;
double x[N], y[N]; 
bool vis[N];
double ans = 0;
int  dnt_pow	(int a, int b, int md = mod){int ans = 1; while(b){if(b&1){ans = (a*ans)%md;}a = (a*a)%md;b >>= 1;}return ans ;}
void dnt_bld	(){fac[0] = 1; inv[0] = dnt_pow(fac[0],mod-2) ;for(int i = 1 ; i < N ; i++) {fac[i] = (fac[i-1] * i) % mod;inv[i] = dnt_pow( fac[i] , mod-2);}}
int  dnt_ncr	(int r,int n){if(r>n) return 0; return fac[n] * inv[r] % mod * inv[n-r] % mod;}
void dfs(int v, double r)
{
	if (vis[v])
		return;
	timer++;
	vis[v] = 1;
	for (int i = 0; i < n; i++)
	{
		if (i != v and vis[i] == 0)
		{
			if((x[i] - x[v]) * (x[i] - x[v]) + (y[i] - y[v]) * (y[i] - y[v]) <= (r * r + 2 * r * r + r * r))
			{
				dfs(i,r);
			}
		}
	}
}
int32_t main()
{    	
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> x[i] >> y[i];
	}
	double l = 0;
	double r = inf;
	for (int i = 0; i <= 64; i++)
	{
		double mid = (l + r) / 2.0;
		timer = 0;
		dfs(0 , mid);
		if (timer == n)
		{
			r = mid - eps;
			ans = mid;
		}
		else
		{
			l = mid + eps;
		}
		for (int i = 0; i < n; i++) vis[i] = 0;
	}
	cout << fixed << setprecision(6) << ans;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 2 ms 604 KB Output is correct
5 Correct 2 ms 348 KB Output is correct
6 Correct 22 ms 504 KB Output is correct
7 Correct 30 ms 348 KB Output is correct
8 Correct 79 ms 348 KB Output is correct
9 Correct 151 ms 556 KB Output is correct
10 Correct 181 ms 552 KB Output is correct