Submission #548946

#TimeUsernameProblemLanguageResultExecution timeMemory
548946ertoBalloons (CEOI11_bal)C++17
20 / 100
429 ms2704 KiB
#include <bits/stdc++.h> typedef long long int ll; #define INF (1e9 + 7) #define INF2 (998244353) #define N (ll)1e6+1005 using namespace std; int n; long double g, t, h, t1, t2, t3; long double ans2; stack<pair<long double, long double>> s; long double f(long double x, long double y){ long double t1 = y * y, l=0, r=y, mid, ans = 1e9; while(r - l >= 1e-10){ mid = (r + l) / 2; if(t1 + (x - mid) * (x - mid) <= (mid + x) * (mid + x)){ ans = mid; r = mid; } else{ l = mid; } } return ans; } void solve(){ cin >> n; for(int i=1; i<=n; i++){ cin >> g >> h; if(s.empty()){ s.push({g, h}); cout <<fixed << setprecision(6)<< h << "\n"; } else{ tie(t1, t2) = s.top(); ans2 = f(t2, (g - t1)); t = min(h, ans2); if(t2 <= t){ s.pop(); while(!s.empty()){ tie(t1, t2) = s.top(); ans2 = f(t2, (g - t1)); t = min(t, ans2); if(t2 > t)break; s.pop(); } } cout <<fixed << setprecision(6)<< t<<'\n'; s.push({g, t}); } } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int T = 1; //cin>>T; while (T--){ solve(); } }
#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...