acm 笔记 1001

本贴最后更新于 2027 天前,其中的信息可能已经物是人非

题目描述

王尼玛是一名机智的程序员,他的机智主要表现在他下楼的速度特别快( > c < )。

王尼玛的家住在第 n 层,他可以选择从电梯下楼或者走楼梯下楼。

当前电梯停在第 m 层,如果他从电梯下到第 1 层,需要:电梯先到达这一层-> 开门-> 关门-> 电梯再到达第一层-> 开门(最后的开门时间也要计算在内)。

现在告诉你——

王尼玛的家在楼层 n,当前电梯停在的楼层 m,

以及电梯每经过一层楼的时间 t1,开门时间 t2,关门时间 t3,还有王尼玛每下一层楼的时间 t4,

让你帮王尼玛计算一下,他最快到达第 1 层的时间。

输入

输入包含多组测试用例,每组数据占两行——

第一行两个整数 n,m,其中 n 表示王尼玛家在的楼层,m 表示当前电梯停在的楼层,

第二行四个整数,t1,t2,t3,t4,其中 t1 表示电梯每经过一层楼的时间,t2 表示开门时间,t3 表示关门时间,t4 表示王尼玛每下一层楼的时间。

数据保证——

1<=n,m<=100000,1<=t1,t2,t3,t4<=100000

输出

每组数据输出一行,含有一个时间,表示王尼玛最快到达第 1 层的时间。

样例输入

5 10
1 5 5 4
5 10
1 1 1 4

样例输出

16
12 
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    long int n,m;
    long int t1,t2,t3,t4;
    while(cin >> n >> m)
    {
        cin >> t1 >> t2 >> t3 >> t4;
        long int time2 = t4 * (n-1);
        long int time1 = abs(m-n) * t1 + t2 + t3 + t1 * (n - 1) + t2;
        cout << (time1 <= time2 ? time1 : time2) << endl;
        //cout << "走楼梯时间" << time2 << endl;
        //cout << "走电梯时间" << time1 << endl;
    }
}

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...