This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <stack>
#include <iomanip>
#include <vector>
#define ld long double
#define pdd pair<ld, ld>
#define fst first
#define snd second
using namespace std;
int N;
vector<pdd> S;
int main()
{
ios :: sync_with_stdio(0); cin.tie(0);
cin >> N;
for (int i = 0; i < N; i++)
{
ld X, R; cin >> X >> R;
while (S.size() > 1)
{
if ((X - S.back().fst) * (X - S.back().fst)/ (4 * S.back().snd) >= (X - S[S.size() - 2].fst) * (X - S[S.size() - 2].fst) / (4 * S[S.size() - 2].snd)) {S.pop_back();}
else {break;}
}
if (S.size()) {R = min(R, (X - S.back().fst) * (X - S.back().fst)/ (4 * S.back().snd));}
S.push_back({X, R});
cout << fixed << setprecision(3) << R << "\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... |