CSES - KILO 2015 0/5 - Results
Submission details
Task:Elevator Trouble
Sender:Martin Radev
Submission time:2015-09-08 15:36:20 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.06 sdetails
#2ACCEPTED0.05 sdetails
#3ACCEPTED0.06 sdetails
#4ACCEPTED0.05 sdetails
#5ACCEPTED0.05 sdetails
#6ACCEPTED0.05 sdetails
#7ACCEPTED0.06 sdetails
#8ACCEPTED0.05 sdetails
#9ACCEPTED0.05 sdetails
#10ACCEPTED0.06 sdetails
#11ACCEPTED0.05 sdetails
#12ACCEPTED0.06 sdetails

Code

#include <iostream>
using namespace std;

typedef long long ll;

#define MAX 9999999999999LL

ll f,s,g,u,d;

bool ok(ll k1, ll k2) {
    if (k1 < 0 || k2 < 0) return false;
    if ( k1 != 0 && k2 != 0) {
        return !(s-d <= 0 && s+u > f);
    }
    return true;
}

int main() {
    cin >> f >> s >> g >> u >> d;
    ll ans = MAX;

    for (ll k1 = 0; k1 < f; ++k1) {
        ll delta = g - (k1 * u + s);
        if (delta == 0) {
            if (k1 < ans) ans = k1;
        } else if (d != 0 && delta < 0LL && (-delta % d == 0) && ok (k1, -delta / d)) {
            ll k2 = -delta / d;
            if (k1 + k2 < ans) {
                ans = k1+k2;
            }
        }
    }

    if (ans == MAX) {
        cout << "use the stairs" << endl;
    } else {
        cout << ans << endl;
    }
    return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
10 1 10 2 1

correct output
6

user output
6

Test 2

Verdict: ACCEPTED

input
100 2 1 1 0

correct output
use the stairs

user output
use the stairs

Test 3

Verdict: ACCEPTED

input
1000000 1 1000000 1 1

correct output
999999

user output
999999

Test 4

Verdict: ACCEPTED

input
1000000 1 1000000 0 1

correct output
use the stairs

user output
use the stairs

Test 5

Verdict: ACCEPTED

input
1000000 1 1000000 0 0

correct output
use the stairs

user output
use the stairs

Test 6

Verdict: ACCEPTED

input
1000000 1 1000000 1 0

correct output
999999

user output
999999

Test 7

Verdict: ACCEPTED

input
1000000 1000000 1 0 1

correct output
999999

user output
999999

Test 8

Verdict: ACCEPTED

input
1000000 2 99999 2 1

correct output
50000

user output
50000

Test 9

Verdict: ACCEPTED

input
10 5 4 6 2

correct output
use the stairs

user output
use the stairs

Test 10

Verdict: ACCEPTED

input
1000000 1000000 1000000 100000...

correct output
0

user output
0

Test 11

Verdict: ACCEPTED

input
456789 2 456789 2 1

correct output
228395

user output
228395

Test 12

Verdict: ACCEPTED

input
100 50 51 4 6

correct output
use the stairs

user output
use the stairs