Submission #1262846

#TimeUsernameProblemLanguageResultExecution timeMemory
1262846wenbangBalloons (CEOI11_bal)C++20
100 / 100
113 ms5060 KiB
#include <iomanip> #include <iostream> #include <stack> #include <vector> #ifdef LOCAL #include "print.h" #else template <typename... Args> inline void print(const Args&... args) {} inline void newline() {} #endif using ll = long long; using ld = long double; #define endl '\n' #define FOR1(n) for (int _ = 0; _ < n; _++) #define FOR2(i, n) for (int i = 0; i < n; i++) #define FOR3(i, a, b) for (int i = a; i < b; i++) #define overload3(a, b, c, d, ...) d #define FOR(...) overload3(__VA_ARGS__, FOR3, FOR2, FOR1)(__VA_ARGS__) using namespace std; inline ld rad(pair<ld, ld> a, ld b) { return (a.first - b) * (a.first - b) / (4 * a.second); } signed main() { ios::sync_with_stdio(0); cin.tie(0); #ifdef LOCAL freopen("input.txt", "r", stdin); #endif int n; cin >> n; vector<ld> radii(n); stack<pair<ld, ld>> check; FOR(i, n) { ld x, r; cin >> x >> r; ld maxRad = r; while (!check.empty()) { pair<ld, ld> top = check.top(); maxRad = min(maxRad, rad(top, x)); if (maxRad >= top.second) { check.pop(); } else { break; } } radii [i] = maxRad; check.push({x, maxRad}); } cout << fixed << setprecision(3); for (const auto& r: radii) { cout << r << 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...