제출 #1304010

#제출 시각아이디문제언어결과실행 시간메모리
1304010hamstpanMobile (BOI12_mobile)C++20
0 / 100
755 ms16064 KiB
#include<iostream>
#include<vector>
#include<functional>
#include<algorithm>
#include<cmath>
using namespace std;
double first_true(double lo, double hi, function<bool(double)> f) {
	hi += 1e-4;
	while (lo + 1e-4 < hi) {
		double mid = lo + (hi - lo) / 2;
		if (f(mid)) hi = mid;
		else lo = mid + 1e-4;
	}
	return lo;
}
int main() {
	int n, l;
	cin >> n >> l;
	vector<pair<double, double>> a(n);
	for (auto& i : a) cin >> i.first >> i.second;
	cout << first_true(0, l, [&](double r) {
		double mincovered = -1;
		int i = 0;
		while (i < n) {
			while (r < a[i].second) ++i; //this doesn't do anything
			if (a[i].first - sqrt(r * r - a[i].second * a[i].second) < mincovered) mincovered = a[i].first + sqrt(r * r - a[i].second * a[i].second);
			++i;
		}
		return mincovered >= 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...