CSES - KILO 2016 0/5 - Results
Submission details
Task:Car
Sender:Pekka Väänänen
Submission time:2016-09-05 17:51:24 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.05 sdetails
#2ACCEPTED0.06 sdetails
#3ACCEPTED0.06 sdetails
#4ACCEPTED0.05 sdetails
#5ACCEPTED0.06 sdetails
#6ACCEPTED0.05 sdetails
#7ACCEPTED0.06 sdetails
#8ACCEPTED0.05 sdetails
#9ACCEPTED0.05 sdetails
#10ACCEPTED0.05 sdetails
#11ACCEPTED0.05 sdetails
#12ACCEPTED0.05 sdetails
#13ACCEPTED0.06 sdetails
#14ACCEPTED0.05 sdetails
#15ACCEPTED0.05 sdetails
#16ACCEPTED0.04 sdetails

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