当前位置 博文首页 > 美迪的麦柯的博客:Java下起楼来我最快
学生程序设计竞赛
Time Limit: 1 Sec Memory Limit: 128 MB
Description
王尼玛是一名机智的程序员,他的机智主要表现在他下楼的速度特别快( > c < )。王尼玛的家住在第n层,他可以选择从电梯下楼或者走楼梯下楼。
当前电梯停在第m层,如果他从电梯下到第1层,需要:电梯先到达这一层->开门->关门->电梯再到达第一层->开门(最后的开门时间也要计算在内)。
现在告诉你:王尼玛的家在楼层n,当前电梯停在的楼层m,以及电梯每经过一层楼的时间t1,开门时间t2,关门时间t3,还有王尼玛每下一层楼的时间t4,让你帮王尼玛计算一下,他最快到达第1层的时间。
Input
输入包含多组测试用例,每组数据占两行:第一行两个整数n,m,其中n表示王尼玛家在的楼层,m表示当前电梯停在的楼层,第二行四个整数,t1,t2,t3,t4,其中t1表示电梯每经过一层楼的时间,t2表示开门时间,t3表示关门时间,t4表示王尼玛每下一层楼的时间。
数据保证:1≤n, m≤100000,1≤t1,t2,t3,t4≤100000
Output
每组数据输出一行,含有一个时间,表示王尼玛最快到达第1层的时间。
Sample Input Copy
5 10
1 5 5 4
5 10
1 1 1 4
Sample Output Copy
16
12
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext())
{
long n=sc.nextLong();
long m=sc.nextLong();
long t1=sc.nextLong();long t2=sc.nextLong();
long t3=sc.nextLong(); long t4=sc.nextLong();
long time1=(n-1)*t4;
long time2;
if(m>n)
time2=t1*(m-1)+2*t2+t3;
else if(m<n)
time2=(2*n-m-1)*t1+2*t2+t3;
else
time2=t1*(n-1)+2*t2+t3;
long minTime=(time1<time2)?time1:time2;
System.out.println(minTime);
}
}
}
运行结果:
Problem: XXXX
User: XXXXXXXXXXX
Language: Java
Result: Accepted
Time:118 ms
Memory:10308 kb
csEND