1. 程式人生 > >[題解]Mail.Ru Cup 2018 Round 1 - A. Elevator or Stairs?

[題解]Mail.Ru Cup 2018 Round 1 - A. Elevator or Stairs?

【題目】

A. Elevator or Stairs?

【描述】

Masha要從第x層樓去第y層樓找Egor,可以選擇爬樓梯或者坐直升電梯。已知爬樓梯每層需要時間t1;坐直升電梯每層需要時間t2,直升電梯開門或者關門一次需要時間t3,當前直升電梯在第z層樓,直升電梯門是在關閉狀態的。如果爬樓梯總時間嚴格小於坐直升電梯,則選擇爬樓梯並輸出YES,否則選擇坐直升電梯並輸出NO。

資料範圍:1<=x,y,z,t1,t2,t3<=1000

【思路】

爬樓梯總時長:t1*abs(x-y)

坐直升電梯總時長:t2*(abs(x-z)+abs(x-y))+t3*3

注意:直升電梯門需要開關一共三次

【我的實現】

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cmath>
 5 #include <algorithm>
 6 
 7 using namespace std;
 8 
 9 inline int My_abs(int x)
10 {
11     return x < 0 ? -x : x;
12 }
13 
14 int main()
15 {
16     int x, y, z, t1, t2, t3;
17 int a, b; 18 scanf("%d%d%d%d%d%d", &x, &y, &z, &t1, &t2, &t3); 19 a = t1 * My_abs(y-x); 20 b = t2 * (My_abs(x-z) + My_abs(x-y)) + 3 * t3; 21 //cout << a << ' ' << b <<endl; 22 if(b <= a) 23 printf("YES"); 24 else 25
printf("NO"); 26 return 0; 27 }
View Code

【評測結果】