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

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:28:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i=0; i<dfs.size(); ++i){
                            ^

Code

#include <iostream>
#include <vector>
using namespace std;
const int INF=1222333444;

int f, s, g, u, d;


int dp[1222333];


vector<int> dfs;

inline int down(int c){
  return c-d>=1?c-d:c;
}
inline int up(int c){
  return c+u<=f?c+u:c;
}

int main(){
  for (int i=0; i<1222333; ++i) dp[i]=INF;
  
  cin >> f >> s >> g >> u >> d;
  
  dp[s]=0;
  dfs.push_back(s);
  for (int i=0; i<dfs.size(); ++i){
    int c=dfs[i];
    int gu=up(c);
    if (dp[gu]==INF){
      dp[gu]=dp[c]+1;
      dfs.push_back(gu);
    }
    int gd=down(c);
    if (dp[gd]==INF){
      dp[gd]=dp[c]+1;
      dfs.push_back(gd);
    }
  }
  if (dp[g]==INF) cout << "use the stairs\n";
  else cout << dp[g] << "\n";
}

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