Submission #1016026

#TimeUsernameProblemLanguageResultExecution timeMemory
1016026ByeWorldBalloons (CEOI11_bal)C++14
20 / 100
179 ms10028 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O3", "unroll-loops") #define ll long long // #define int long long #define pb push_back #define fi first #define se second #define lf (id<<1) #define rg ((id<<1)|1) #define md ((l+r)/2) #define ld long double using namespace std; typedef pair<int,int> pii; typedef pair<pii, int> ipii; const int MAXN = 2e5+10; const int MAXA = 1e6+10; const int INF = 1e9+10; // const int INF2 = 1e18+10; const int LOG = 19; const int MOD = 1e9+7; const int SQRT = 450; const vector<int> NOL = {}; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); const vector<int> dx = {1, -1, 0, 0}; const vector<int> dy = {0, 0, 1, -1}; void chmn(ld &a, ld b){ a = min(a, b); } void chmx(ld &a, ld b){ a = max(a, b); } int n; int x[MAXN], mx[MAXN]; ld r[MAXN]; ld dis(int j, int i){ return (ld)(1ll*(x[j]-x[i])*(x[j]-x[i]) / (4*r[j])); } signed main(){ cin >> n; for(int i=1; i<=n; i++){ cin >> x[i] >> mx[i]; } vector <int> stac; stac.pb(1); r[1] = mx[1]; for(int i=2; i<=n; i++){ ld mn = (ld)mx[i]; if(stac.size() <= 2){ for(auto j : stac){ chmn(mn, dis(j, i)); } } else { while(stac.size()>=2 && dis(stac[stac.size()-2], i) < dis(stac.back(), i)) stac.pop_back(); if(stac.size()==1) chmn(mn, dis(stac.back(), i)); else { chmn(mn, dis(stac.back(), i)); chmn(mn, dis(stac[stac.size()-2], i)); } } // for(int j=1; j<=i-1; j++){ // ld te = 1ll*(x[j]-x[i])*(x[j]-x[i]) / (4*r[j]); // chmn(mn, te); // } r[i] = mn; stac.pb(i); } for(int i=1; i<=n; i++) cout << fixed << setprecision(3) << r[i] << '\n'; }
#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...