제출 #1241411

#제출 시각아이디문제언어결과실행 시간메모리
1241411lucaski2Balloons (CEOI11_bal)C++20
10 / 100
320 ms8688 KiB
#include <bits/stdc++.h> // #pragma GCC target ("avx,avx2,fma") // #pragma GCC optimize ("Ofast") // #pragma GCC optimize ("unroll-loops") #define int long long #define double long double #define all(a) (a).begin(), (a).end() #define f first #define s second using namespace std; double dist(pair<double, double> a, pair<double, double> b) { return abs(a.f - b.f) * abs(a.f - b.f) + abs(a.s - b.s) * abs(a.s - b.s); } bool touch(pair<double, double> a, pair<double, double> b) { double d = dist(a, b); return d <= (a.s + b.s) * (a.s + b.s); } bool toucht(pair<double, double> a, pair<double, double> b) { double d = dist(a, b); cout << d << ' ' << (a.s + b.s) * (a.s + b.s) << endl; return d >= (a.s + b.s) * (a.s + b.s); } void solve(int tc) { int n; cin >> n; vector<pair<double, double>> points(n); for (int i = 0; i < n; i++) cin >> points[i].f >> points[i].s; sort(all(points)); vector<pair<double, double>> st; double ans = 0; for (int i = 0; i < n; i++) { while (st.size() and !touch(st.back(), points[i]) and st.back().s < points[i].s) { st.pop_back(); } double rad; if (st.size()) { // do some geo shit double eps = pow(10, -10); double l = 0, r = points[i].s; while (l + eps <= r) { double mid = (l + r) / 2; // make radius mid if (!touch(st.back(), {points[i].f, mid})) { rad = mid; l = mid + eps; } else { r = mid - eps; } } } else { rad = points[i].s; } cout << rad << endl; st.push_back({points[i].f, rad}); } } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int t = 1; for (int i = 1; i <= t; i++) { solve(i); } }
#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...