| Task: | Car |
| Sender: | Pekka Väänänen |
| Submission time: | 2016-09-05 17:51:24 +0300 |
| Language: | C++ |
| Status: | READY |
| Result: | ACCEPTED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.05 s | details |
| #2 | ACCEPTED | 0.06 s | details |
| #3 | ACCEPTED | 0.06 s | details |
| #4 | ACCEPTED | 0.05 s | details |
| #5 | ACCEPTED | 0.06 s | details |
| #6 | ACCEPTED | 0.05 s | details |
| #7 | ACCEPTED | 0.06 s | details |
| #8 | ACCEPTED | 0.05 s | details |
| #9 | ACCEPTED | 0.05 s | details |
| #10 | ACCEPTED | 0.05 s | details |
| #11 | ACCEPTED | 0.05 s | details |
| #12 | ACCEPTED | 0.05 s | details |
| #13 | ACCEPTED | 0.06 s | details |
| #14 | ACCEPTED | 0.05 s | details |
| #15 | ACCEPTED | 0.05 s | details |
| #16 | ACCEPTED | 0.04 s | details |
Code
#include <bits/stdc++.h>
using namespace std;
static inline double func(double x)
{
return exp(x) + sqrt(x);
}
int main() {
cin.sync_with_stdio(false);
// e^x + sqrt(x) < 3^x + x
// let y be the upper limit of our search
// 3^x + x = y
// 3^x + x^1
// first find the upper bound by doubling the initial guess until
// we have something workable
// then locate the change point with binary search
double lim = 1.0; // litres
double d;
cin >> d;
while (func(lim) < d) {
lim *= 2.0;
}
// cout << lim << "\n";
double b = lim;
double x = 0.0;
while (abs(b) > 1e-8) {
b /= 2.0;
if (func(x + b) < d) {
// cout << "less\n";
x += b;
}
// cout << x << "\n";
// cout << "b: " << b << "\n";
}
printf("%.12f\n", x);
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 9.6472003657 |
| correct output |
|---|
| 2.1037405000 |
| user output |
|---|
| 2.103740498424 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 2.6194457635 |
| correct output |
|---|
| 0.6091893001 |
| user output |
|---|
| 0.609189294279 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 26.6287362847 |
| correct output |
|---|
| 3.2123120855 |
| user output |
|---|
| 3.212312079966 |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 85.2060675748 |
| correct output |
|---|
| 4.4200888266 |
| user output |
|---|
| 4.420088820159 |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 251.5414091766 |
| correct output |
|---|
| 5.5182249635 |
| user output |
|---|
| 5.518224962056 |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 1.4659661390 |
| correct output |
|---|
| 0.1169203746 |
| user output |
|---|
| 0.116920374334 |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 4.5758663516 |
| correct output |
|---|
| 1.2417146831 |
| user output |
|---|
| 1.241714678705 |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 2.5017283201 |
| correct output |
|---|
| 0.5611260051 |
| user output |
|---|
| 0.561126001179 |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 382.9940176537 |
| correct output |
|---|
| 5.9416345784 |
| user output |
|---|
| 5.941634573042 |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 6.9450515856 |
| correct output |
|---|
| 1.7281886061 |
| user output |
|---|
| 1.728188604116 |
Test 11
Verdict: ACCEPTED
| input |
|---|
| 9.3722280680 |
| correct output |
|---|
| 2.0710457980 |
| user output |
|---|
| 2.071045793593 |
Test 12
Verdict: ACCEPTED
| input |
|---|
| 43.7237043698 |
| correct output |
|---|
| 3.7326974052 |
| user output |
|---|
| 3.732697404921 |
Test 13
Verdict: ACCEPTED
| input |
|---|
| 121.0792191810 |
| correct output |
|---|
| 4.7782264834 |
| user output |
|---|
| 4.778226479888 |
Test 14
Verdict: ACCEPTED
| input |
|---|
| 1.5574455956 |
| correct output |
|---|
| 0.1533964268 |
| user output |
|---|
| 0.153396420181 |
Test 15
Verdict: ACCEPTED
| input |
|---|
| 38.9204870549 |
| correct output |
|---|
| 3.6114610786 |
| user output |
|---|
| 3.611461073160 |
Test 16
Verdict: ACCEPTED
| input |
|---|
| 8.2852091835 |
| correct output |
|---|
| 1.9308899819 |
| user output |
|---|
| 1.930889979005 |
