Submission #398749

#TimeUsernameProblemLanguageResultExecution timeMemory
398749ritul_kr_singhMobile (BOI12_mobile)C++17
8 / 100
416 ms32476 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define sp << ' ' <<
#define nl << '\n'

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

bool possible(double x){
	double last = 0;
	for(auto &i : a){
		if(x * x < (double) i[1]) continue;
		double w = sqrt(x * x - (double) i[1]);
		if(last >= (double) i[0] - w) last = max(last, (double) i[0] + w);
	}
	return last >= (double) 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 = 1e10;
	for(int _=0; _<50; ++_){
		double mid = (low + high) / (double) 2.0;
		if(possible(mid)) high = mid - 1e-5;
		else low = mid;
	}

	cout << 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...