제출 #1201809

#제출 시각아이디문제언어결과실행 시간메모리
1201809AlfraganusMobile (BOI12_mobile)C++20
0 / 100
1096 ms31560 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define fs first #define ss second #define str string #define endl '\n' #define all(a) a.begin(), a.end() #define print(a) \ for (auto x : a) \ cout << x << ' '; \ cout << endl; #define printmp(a) \ for (auto x : a) \ cout << x.fs << ' ' << x.ss << endl; #define matrix(a) \ for (auto x : a) { \ for (auto y : x) \ cout << y << ' '; \ cout << endl; \ } const int mod = 1e9 + 7; void solve() { int n; long double L; cin >> n >> L; vector<array<long double, 2>> a(n); for(int i = 0; i < n; i ++) cin >> a[i][0] >> a[i][1]; sort(all(a)); auto dist = [&](long double x){ long double mn = 5e18; for(int i = 0; i < n; i ++) mn = min(mn, abs(x - a[i][0]) * abs(x - a[i][0]) + a[i][1] * a[i][1]); return mn; }; long double mn = 5e18, ans = -1; for(int i = 0; i < n - 1; i ++){ long double l = min(L, max((long double)0, a[i][0])), r = min(L, max((long double)0, a[i + 1][0])); for(int i = 0; i < 100; i ++){ long double mid1 = l + (r - l) / 3.0, mid2 = r - (r - l) / 3.0; if(dist(mid1) > dist(mid2)) r = mid2; else l = mid1; } if(mn > dist(l)) mn = dist(l), ans = l; } cout << fixed << setprecision(5) << ans; } signed main() { ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); int t = 1; // cin >> t; while (t--) { solve(); cout << endl; } }
#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...