#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
int n;
long double x, y, a, b;
long double xl = -1, al;
long double xl2 = -1, al2;
long double xl3 = -1, al3;
long double xl4 = -1, al4;
long double xl5 = -1, al5;
long double xl6 = -1, al6;
long double xl7 = -1, al7;
long double xl8 = -1, al8;
long double xl9 = -1, al9;
long double xl10 = -1, al10;
long double xl11 = -1, al11;
long double xl12 = -1, al12;
long double xl13 = -1, al13;
long double xl14 = -1, al14;
long double xl15 = -1, al15;
long double xl16 = -1, al16;
long double xl17 = -1, al17;
long double xl18 = -1, al18;
long double xl19 = -1, al19;
long double xl20 = -1, al20;
long double dis(long double m) {
long double p = sqrt((x - a) * (x - a) + (m - y) * (m - y));
return p;
}
long double dis2(long double m) {
return sqrt((a - xl) * (a - xl) + (m - al) * (m - al));
}
long double dis3(long double m) {
return sqrt((a - xl2) * (a - xl2) + (m - al2) * (m - al2));
}
long double dis4(long double m) {
return sqrt((a - xl3) * (a - xl3) + (m - al3) * (m - al3));
}
long double dis5(long double m) {
return sqrt((a - xl4) * (a - xl4) + (m - al4) * (m - al4));
}
long double dis6(long double m) {
return sqrt((a - xl5) * (a - xl5) + (m - al5) * (m - al5));
}
long double dis7(long double m) {
return sqrt((a - xl6) * (a - xl6) + (m - al6) * (m - al6));
}
long double dis8(long double m) {
return sqrt((a - xl7) * (a - xl7) + (m - al7) * (m - al7));
}
long double dis9(long double m) {
return sqrt((a - xl8) * (a - xl8) + (m - al8) * (m - al8));
}
long double dis10(long double m) {
return sqrt((a - xl9) * (a - xl9) + (m - al9) * (m - al9));
}
long double dis11(long double m) {
return sqrt((a - xl10) * (a - xl10) + (m - al10) * (m - al10));
}
long double dis12(long double m) {
return sqrt((a - xl11) * (a - xl11) + (m - al11) * (m - al11));
}
long double dis13(long double m) {
return sqrt((a - xl12) * (a - xl12) + (m - al12) * (m - al12));
}
long double dis14(long double m) {
return sqrt((a - xl13) * (a - xl13) + (m - al13) * (m - al13));
}
long double dis15(long double m) {
return sqrt((a - xl14) * (a - xl14) + (m - al14) * (m - al14));
}
long double dis16(long double m) {
return sqrt((a - xl15) * (a - xl15) + (m - al15) * (m - al15));
}
long double dis17(long double m) {
return sqrt((a - xl16) * (a - xl16) + (m - al16) * (m - al16));
}
long double dis18(long double m) {
return sqrt((a - xl17) * (a - xl17) + (m - al17) * (m - al17));
}
long double dis19(long double m) {
return sqrt((a - xl18) * (a - xl18) + (m - al18) * (m - al18));
}
long double dis20(long double m) {
return sqrt((a - xl19) * (a - xl19) + (m - al19) * (m - al19));
}
long double dis21(long double m) {
return sqrt((a - xl20) * (a - xl20) + (m - al20) * (m - al20));
}
long double Find() {
long double l = 0, r = b, ans = 0;
for (int i = 1; i <= 100; ++i) {
long double m = (l + r) / 2.0;
if (dis(m) >= y + m) {
if (xl == -1 || dis2(m) >= al + m) {
if (xl2 == -1 || dis3(m) >= al2 + m) {
if (xl3 == -1 || dis4(m) >= al3 + m) {
if (xl4 == -1 || dis5(m) >= al4 + m) {
if (xl5 == -1 || dis6(m) >= al5 + m) {
if (xl6 == -1 || dis7(m) >= al6 + m) {
if (xl7 == -1 || dis8(m) >= al7 + m) {
if (xl8 == -1 || dis9(m) >= al8 + m) {
if (xl9 == -1 || dis10(m) >= al9 + m)
if (xl10 == -1 || dis11(m) >= al10 + m)
if (xl11 == -1 || dis12(m) >= al11 + m)
if (xl12 == -1 || dis13(m) >= al12 + m)
if (xl13 == -1 || dis14(m) >= al13 + m)
if (xl14 == -1 || dis15(m) >= al14 + m)
if (xl15 == -1 || dis16(m) >= al15 + m)
if (xl16 == -1 || dis17(m) >= al16 + m)
if (xl17 == -1 || dis18(m) >= al17 + m)
if (xl18 == -1 || dis19(m) >= al18 + m)
if (xl19 == -1 || dis20(m) >= al19 + m)
if (xl20 == -1 || dis21(m) >= al20 + m) {
ans = m;
l = m;
} else r = m;
else r = m;
else r = m;
else r = m;
else r = m;
else r = m;
else r = m;
else r = m;
else r = m;
else r = m;
else r = m;
else r = m;
} else r = m;
} else r = m;
} else r = m;
} else r = m;
} else r = m;
} else r = m;
} else r = m;
} else r = m;
} else r = m;
}
return ans;
}
int main() {
cin.tie(nullptr);
cout.tie(nullptr);
ios_base::sync_with_stdio(false);
cin >> n;
x = -1e9;
y = 0;
for (int i = 1; i <= n; ++i) {
cin >> a >> b;
long double ans = Find();
printf("%.3Lf\n", ans);
xl20 = xl19; al20 = al19;
xl19 = xl18; al19 = al18;
xl18 = xl17; al18 = al17;
xl17 = xl16; al17 = al16;
xl16 = xl15; al16 = al15;
xl15 = xl14; al15 = al14;
xl14 = xl13; al14 = al13;
xl13 = xl12; al13 = al12;
xl12 = xl11; al12 = al11;
xl11 = xl10; al11 = al10;
xl10 = xl9; al10 = al9;
xl9 = xl8; al9 = al8;
xl8 = xl7; al8 = al7;
xl7 = xl6; al7 = al6;
xl6 = xl5; al6 = al5;
xl5 = xl4; al5 = al4;
xl4 = xl3; al4 = al3;
xl3 = xl2; al3 = al2;
xl2 = xl; al2 = al;
xl = a; al = ans;
if (abs(a + ans - x - y) <= 1e-10) continue;
if (a + ans > x + y) {
x = a;
y = ans;
}
}
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... |