Submission #1006935

#TimeUsernameProblemLanguageResultExecution timeMemory
1006935jor0715Balloons (CEOI11_bal)C++17
100 / 100
133 ms11860 KiB
#include <bits/stdc++.h> using namespace std; #define MOD 1000000007 #define ll long long #define endl "\n" #define range(i,a,b,c) for(int i=a;i!=b;i+=c) #define vi vector<int> #define vll vector<ll> long double r2(long double r1, long double x1, long double x2){ int dis = abs(x2-x1); return 1.0*pow(dis,2)/(4*r1); } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cout << fixed << setprecision(3); int N; cin >> N; vector<long double> x(N); vector<long double> r(N); range(i,0,N,1){ cin >> x[i] >> r[i]; } stack<pair<long double, int>> st; st.push({r[0],x[0]}); cout << r[0] << endl; range(i,1,N,1){ long double minn = min(r[i], r2(st.top().first, st.top().second, x[i])); while(st.top().first <= minn){ st.pop(); if(st.empty()) break; minn = min(minn, r2(st.top().first, st.top().second, x[i])); } st.push({minn, x[i]}); cout << minn << endl; } 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...