Submission #679208

#TimeUsernameProblemLanguageResultExecution timeMemory
679208scrgeMobile (BOI12_mobile)C++17
0 / 100
274 ms5472 KiB
#include <bits/stdc++.h>
using namespace std;

int n, L;
pair<double, double> base[100000];

bool check(double r){
	pair<double, double> seg[100000];
	for(int i = 0; i < n; i++){
		double x = base[i].first, y = base[i].second;
		if(r*r < y*y) continue;
		double d = sqrt(r*r-y*y);
		seg[i] = {max((double)0, x-d), min(x+d, (double)L)};
	}

	sort(seg, seg+n);
	
	double right = 0;	
	for(int i = 0; i < n; i++){
		if(seg[i].first > right) return true;
		right = max(right, seg[i].second);
	}
	return false;
}

int main(){
	cin >> n >> L;
	for(int i = 0; i < n; i++)
		cin >> base[i].first >> base[i].second;

	double l = 0, r = 2e9;
	while(l+1e-6 < r){
		double mid = (l+r)/2;
		if(check(mid)) l = mid;
		else r = mid;
	}

	cout << l;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...