제출 #1304009

#제출 시각아이디문제언어결과실행 시간메모리
1304009hamstpanMobile (BOI12_mobile)C++20
컴파일 에러
0 ms0 KiB
#include<iostream>
#include<vector>
#include<functional>
#include<algorithm>
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;
		});
}

컴파일 시 표준 에러 (stderr) 메시지

mobile.cpp: In lambda function:
mobile.cpp:25:42: error: 'sqrt' was not declared in this scope
   25 |                         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);
      |                                          ^~~~