Submission #1215247

#TimeUsernameProblemLanguageResultExecution timeMemory
1215247newsboyBalloons (CEOI11_bal)C++20
100 / 100
99 ms8036 KiB
#include <iostream> #include <string> #include <vector> #include <algorithm> #include <iomanip> #include <set> #include <map> #include <numeric> #include <iomanip> #include <unordered_set> #include <unordered_map> #include <bitset> #include <queue> #include <deque> #include <stack> #include <cmath> #include <tuple> #include <cassert> #include <array> #include <list> #include <random> #include <initializer_list> using namespace std; using ll = long long; using ull = unsigned long long; using ld = double; constexpr ll INF = 1E18; constexpr ll MIN = -INF; constexpr ll MAX = INF; constexpr ll N = 1E4 + 10; ld get(pair<ld, ld>& a, ll x) { return pow(abs(a.first) - x, 2) / (4 * a.second); } void solve() { ll n; cin >> n; vector<ll> x(n), r(n); for (ll i = 0; i < n; ++i) { cin >> x[i] >> r[i]; } stack<pair<ld, ld>> st; vector<ld> ans(n); for (ll i = 0; i < n; ++i) { ld curr = r[i]; while (!st.empty()) { auto last = st.top(); curr = min(curr, get(last, x[i])); if (curr < last.second) { break; } else { st.pop(); } } st.push({ x[i], curr }); ans[i] = curr; } for (ll i = 0; i < n; ++i) { cout << ans[i] << '\n'; } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout << fixed << setprecision(10); int t = 1; /*cin >> t;*/ while (t--) { solve(); } 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...