#include <bits/stdc++.h>
using namespace std;
pair <int , long double> candidati[200001];
inline long double Necesar (pair <int , long double>& anterior , const int actual)
{
return 1LL * (actual - anterior.first) * (actual - anterior.first) / (4 * anterior.second);
}
int main ()
{
ios :: sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int lungime;
cin >> lungime;
cout << fixed << setprecision(3);
for (int indice = 1 ; indice <= lungime ; indice++)
{
pair <int , long double> actual;
cin >> actual.first >> actual.second;
while (candidati[0].first)
{
actual.second = min(actual.second , Necesar(candidati[candidati[0].first] , actual.first));
if (actual.second >= candidati[candidati[0].first].second) { candidati[0].first--; }
else { break; }
}
candidati[++candidati[0].first] = actual;
cout << actual.second << '\n';
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |