Submission #398752

#TimeUsernameProblemLanguageResultExecution timeMemory
398752ritul_kr_singhMobile (BOI12_mobile)C++17
90 / 100
1018 ms47100 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define double long double
#define sp << ' ' <<
#define nl << '\n'

vector<array<double, 2>> a;
int n; double l;

bool possible(double x){
	double last = 0, w;
	for(auto &i : a){
		if(x * x < i[1]) continue;
		w = sqrt(x * x - i[1]);
		if(last >= i[0] - w) last = max(last, i[0] + w);
	}
	return last >= l;
}

signed main(){
	cin.tie(0)->sync_with_stdio(0);
	cin >> n >> l;
	a.resize(n);
	for(auto &i : a) cin >> i[0] >> i[1], i[1] *= i[1];

	double low = 0, high = 4e9;
	for(int _=0; _<45; ++_){
		double mid = (low + high) / (double) 2.0;
		if(possible(mid)) high = mid - 1e-5;
		else low = mid;
	}

	cout << fixed << setprecision(5) << low;
}
#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...