Submission #838467

#TimeUsernameProblemLanguageResultExecution timeMemory
838467fanwenMobile (BOI12_mobile)C++17
100 / 100
426 ms27620 KiB
#include <bits/stdc++.h>

using namespace std;

const int MAXN = 1e6 + 5;

int N, L;
pair <int, int> p[MAXN];

void you_make_it(void) {
	cin >> N >> L;
	for (int i = 0; i < N; ++i) cin >> p[i].first >> p[i].second;

	double l = 0, r = 1.5e9;
	while(r - l > 1e-6) {
		double mid = (l + r) / 2.0, res = 0;
		for (int i = 0; i < N; ++i) {
			double dist = sqrt(mid * mid - 1LL * p[i].second * p[i].second);
			double a = p[i].first - dist, b = p[i].first + dist;
			if(a <= res) res = max(res, b);
		}
		if(res <= L) l = mid;
		else r = mid;
	}
	cout << fixed << setprecision(6) << l;
}

signed main() {

#ifdef LOCAL
    freopen("TASK.inp", "r", stdin);
    freopen("TASK.out", "w", stdout);
#endif
    auto start_time = chrono::steady_clock::now();

    cin.tie(0), cout.tie(0) -> sync_with_stdio(0);

    you_make_it();

    auto end_time = chrono::steady_clock::now();

    cerr << "\nExecution time : " << chrono::duration_cast <chrono::milliseconds> (end_time - start_time).count() << "[ms]" << endl;

    return (0 ^ 0);
}

// Dream it. Wish it. Do it.
#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...