Submission #908598

#TimeUsernameProblemLanguageResultExecution timeMemory
908598roimuBalloons (CEOI11_bal)C++14
100 / 100
488 ms14932 KiB
//include //------------------------------------------ #include <vector> #include <list> #include <map> #include <set> #include <deque> #include <queue> #include <stack> #include <bitset> #include <algorithm> #include <functional> #include <numeric> #include <utility> #include <sstream> #include <iostream> #include <fstream> #include <iomanip> #include <cstdio> #include <cmath> #include <cstdlib> #include <string> #include <cstring> #include <ctime> #include <climits> #include <limits> #include <assert.h> using namespace std; typedef long long LL; //constant //-------------------------------------------- const double EPS = 1e-10; const double PI = acos(-1.0); const int INF = (int)1000000007; const LL MOD = (LL)1000000007;//10^9+7 const LL INF2 = (LL)100000000000000000;//10^18 long double dist(pair<long double, long double> a, pair<long double, long double> b) { long double four = 4.0000000000000000; return (a.first - b.first)*(a.first - b.first) / four / a.second; } long double getr(pair<long double, long double> a, pair<long double, long double> b) { return min(dist(a, b), b.second); } int main() { int n; cin >> n; vector<pair<long double, long double>> a(n); for (int i = 0; i < n; i++) { cin >> a[i].first >> a[i].second; } vector<long double> ans(n); ans[0] = a[0].second; stack<pair<long double, long double>> st; st.push(a[0]); for (int i = 1; i < n; i++) { long double rnow = 10000000000; while (!st.empty()) { long double rb = getr(st.top(), a[i]); rnow = min(rnow, rb); if (rnow >= st.top().second) { st.pop(); } else { break; } } if (st.empty()) { st.push({ a[i].first,rnow }); } else { long double rb= getr(st.top(), a[i]); rnow = min(rnow, rb); st.push({ a[i].first,rnow }); } ans[i] = rnow; } for (int i = 0; i < n; i++) { cout << fixed << setprecision(3) << ans[i] << endl; } return 0; } /* 2 0 2 20 10 */
#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...