Submission #858124

#TimeUsernameProblemLanguageResultExecution timeMemory
858124ColourAttilaBalloons (CEOI11_bal)C++17
10 / 100
385 ms6772 KiB
#include <bits/stdc++.h> using namespace std; #define InTheNameOfGod ios::sync_with_stdio(0);cin.tie(0); cout.tie(0); using ll = long long; const ll maxN = 2e5 + 5; const ll MOD = 1e12 + 7; const ll INF = 1e9 + 7; double val(double x, double r) { return x*x/4.0/r; } int main() { InTheNameOfGod; ll n; cin >> n; vector<pair<double, double> > v(n); for(ll i = 0; i < n; i++) { cin >> v[i].first >> v[i].second; } vector<ll> ind; ind.push_back(0); vector<double> mo = {v[0].second}; for(ll i = 1; i < n; i++) { double mini = val(v[i].first-v[ind[0]].first, mo[ind[0]]); int l = 0, r = ind.size()-1; while(l <= r) { int mid = (l+r)/2; if(val(v[i].first-v[ind[mid]].first, mo[ind[mid]]) < mini) { mini = val(v[i].first-v[ind[mid]].first, mo[ind[mid]]); l = mid+1; } else r = mid-1; } mini = min(mini, v[i].second); mo.push_back(mini); while(!ind.empty() && mo[ind.back()] < mini) ind.pop_back(); ind.push_back(i); } cout << fixed << setprecision(3); for(ll i = 0; i < n; i++) cout << mo[i] << 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...