제출 #1233877

#제출 시각아이디문제언어결과실행 시간메모리
1233877joeyddMobile (BOI12_mobile)C++20
100 / 100
705 ms31560 KiB
#include <algorithm> #include <array> #include <bitset> #include <cctype> #include <climits> #include <cmath> #include <cstdarg> #include <cstddef> #include <cstdint> #include <cstdio> #include <cstdlib> #include <deque> #include <fstream> #include <functional> #include <future> #include <iomanip> #include <iostream> #include <iterator> #include <list> #include <locale> #include <map> #include <mutex> #include <numeric> #include <optional> #include <queue> #include <random> #include <set> #include <string> #include <unordered_map> #include <utility> #include <vector> using namespace std; #define endl "\n" using ll = double; using ull = unsigned long long; using ld = long double; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); /*freopen("name.in", "r", stdin); freopen("name.out", "w", stdout);*/ int n; long long f; cin >> n >> f; vector<long double> x(n), y(n); for (int i = 0; i < n; i++) { cin >> x[i] >> y[i]; } ld l = 0.0, r = 1.5e9; for (int it = 0; it < 60; it++) { ld mid = (l + r) * 0.5; long double cover = 0; for (int i = 0; i < n && cover < f; i++) { if (y[i] > mid) continue; long double delta = mid * mid - y[i] * y[i]; if (delta < 0) delta = 0; // guard numerical error long double dx = sqrtl(delta); long double left = x[i] - dx, right = x[i] + dx; if (left <= cover) { cover = max(cover, right); } } (cover >= f ? r : l) = mid; } cout << fixed << setprecision(4) << r << endl; return 0; }
#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...