Submission #642824

#TimeUsernameProblemLanguageResultExecution timeMemory
642824dariaBalloons (CEOI11_bal)C++14
100 / 100
575 ms14916 KiB
#include "bits/stdc++.h"
using namespace std;
#define N (1<<18) // 4194304
#define ld long double
#define x first
#define r second
typedef pair<ld, ld> p;
 
ld rad(p a, p b){
 return (a.x-b.x)*(a.x-b.x)/(4*a.r);
}
 
int main(){
 int n; cin >> n;
 vector<p> v(n);
 vector<ld> r(n);
 for(int i=0; i<n; ++i){ ld a, b; cin >> a >> b; v[i] = {a, b}; }
 stack<p> st;
 for(int i=0; i<n; ++i){
  ld curr = v[i].r;
  while(!st.empty()){
   ld check = rad(st.top(), v[i]);
   curr = min(curr,check);
   if(curr>=st.top().r){ st.pop(); continue; }
   else break;
  }
  r[i] = curr;
  st.push({v[i].x, curr});
 }
 cout << fixed << setprecision(3);
 for(int i=0; i<n; ++i) cout << r[i] << endl;
}
#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...