Submission #741296

#TimeUsernameProblemLanguageResultExecution timeMemory
741296hafoBalloons (CEOI11_bal)C++14
100 / 100
189 ms8580 KiB
#include <bits/stdc++.h> #define ll long long #define ull unsigned ll #define pb push_back #define pa pair<int, int> #define pall pair<ll, int> #define fi first #define se second #define TASK "test" #define all(x) x.begin(), x.end() using namespace std; template<typename T1, typename T2> bool mini (T1 &a, T2 b) {if(a > b) a = b; else return 0; return 1;} template<typename T1, typename T2> bool maxi (T1 &a, T2 b) {if(a < b) a = b; else return 0; return 1;} const int MOD = 1e9 + 7; const int LOG = 20; const int maxn = 2e5 + 7; const ll oo = 1e18 + 69; int n; double r[maxn], x[maxn]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); //freopen(TASK".inp", "r", stdin); //freopen(TASK".out", "w", stdout); cin>>n; for(int i = 0; i < n; i++) cin>>x[i]>>r[i]; stack<pair<int, double>> st; for(int i = 0; i < n; i++) { double rr = r[i]; while(!st.empty()) { int x2 = st.top().fi; double r2 = st.top().se; mini(rr, (x2 - x[i]) * (x2 - x[i]) / (r2 * 4.0)); if(rr >= r2) st.pop(); else break; } cout<<setprecision(3)<<fixed<<rr<<"\n"; st.push({x[i], rr}); } 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...