CSES - KILO 2016 0/5 - Results
Submission details
Task:Elevator Trouble
Sender:Team Brainfuck
Submission time:2016-09-04 00:53:00 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.06 sdetails
#2ACCEPTED0.06 sdetails
#3ACCEPTED0.04 sdetails
#4ACCEPTED0.04 sdetails
#5ACCEPTED0.05 sdetails
#6ACCEPTED0.05 sdetails
#7ACCEPTED0.06 sdetails
#8ACCEPTED0.06 sdetails
#9ACCEPTED0.05 sdetails
#10ACCEPTED0.06 sdetails
#11ACCEPTED0.05 sdetails
#12ACCEPTED0.05 sdetails

Code

#include <iostream>
#include <cmath>
#include <stdio.h>
#include <vector>
using namespace std;

long long f, s, g, u, d, v;
bool b = 0;
vector<bool> q(10000001, 0);

int main() {
	v = 0;
	cin >> f >> s >> g >> u >> d;
	if (s == g) cout << 0;
	while (s != g)
	{
		b = 0;
		v++;
		if (s + u == g || s - d == g)
		{
			cout << v;
			break;
		}
		if (s < g)
		{
			if (u == 0)
			{
				cout << "use the stairs";
				break;
			}
			if (s + u <= f)
			{
				if (q[s + u] == 0)
				{
					s += u;
					q[s] = 1;
					b = 1;
				}
			}
			else
			{
				if (s - d >= 1)
				{
					if (q[s - d] == 0)
					{
						s -= d;
						q[s] = 1;
						b = 1;
					}
				}
				else
				{
					cout << "use the stairs";
					break;
				}
			}
		}
		else
		{
			if (d == 0)
			{
				cout << "use the stairs";
				break;
			}
			if (s - d >= 1)
			{
				if (q[s - d] == 0)
				{
					s -= d;
					q[s] = 1;
					b = 1;
				}
			}
			else
			{
				if (s + u <= f)
				{
					if (q[s + u] == 0)
					{
						s += u;
						q[s] = 1;
						b = 1;
					}
				}
				else
				{
					cout << "use the stairs";
					break;
				}
			}
		}
		if (b == 0)
		{
			cout << "use the stairs";
			break;
		}
	}
}

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