列表

详情


NC247419. 小杜要迟到了!

描述

预备铃响起,身在寝室的小杜一惊,猛地发现他要上接下来的这堂课!

小杜以顺雷不及掩耳之势赶到了楼下,但是在选择走楼梯还是坐电梯的问题上踌躇不定。

小杜现在在 1 楼,上课地点在 n 楼。已知小杜走楼梯速度为 a 秒每层楼,电梯运行速度为 b 秒每层楼。然而最开始电梯停留在 k 楼,也就是说,电梯要先运行至 1 楼才能接上小杜。
假设此时没有他人等电梯,且忽略电梯上下客的时间,且除了1楼外其他楼层不能呼叫电梯。

小杜想知道是走楼梯快还是坐电梯快还是一样快。


输入描述

一行包括四个正整数 n,k,a,b(

输出描述

如果电梯快,请输出 "1";
如果走楼梯快,请输出 "2";
如果一样快,请输出 "0"。
(不包含引号)

示例1

输入:

7 3 3 2

输出:

1

说明:

小杜走楼梯需要 (7-1)*3 = 18 秒,乘电梯需要 (3-1)*2+(7-1)*2 = 16 秒,所以小杜乘电梯更快。

示例2

输入:

7 4 3 2

输出:

0

说明:

小杜走楼梯需要 (7-1)*3 = 18 秒,乘电梯需要 (4-1)*2+(7-1)*2 = 18 秒,所以小杜乘电梯和走楼梯速度一样快。

示例3

输入:

7 5 3 2

输出:

2

说明:

小杜走楼梯需要 (7-1)*3 = 18 秒,乘电梯需要 (5-1)*2+(7-1)*2 = 20 秒,所以小杜走楼梯更快。

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 3ms, 内存消耗: 424K, 提交时间: 2023-08-04 23:05:48

#include<iostream>
using namespace std;
int main()
{
    int n,k,a,b;
    cin>>n>>k>>a>>b;
    if ((n-1)*a==(n+k-2)*b)
    cout<<0;
    else if ((n-1)*a>(n+k-2)*b)
    cout<<1;
    else
    cout<<2;
}

Java 解法, 执行用时: 43ms, 内存消耗: 10800K, 提交时间: 2023-08-04 23:01:47

import java.util.Scanner;

public class Main{
    public static void main(String args[])
    {
        int k,a,b,t1,t2,n;
        Scanner sc=new Scanner(System.in);
        n=sc.nextInt();
        k=sc.nextInt();
        a=sc.nextInt();
        b=sc.nextInt();
        t1=(k+n-2)*b;
        t2=(n-1)*a;
        if(t1==t2)
            System.out.println("0");
        else if(t1<t2)
            System.out.println("1");
        else  System.out.println("2");
    }
}

Python3 解法, 执行用时: 41ms, 内存消耗: 6032K, 提交时间: 2023-08-03 17:57:09

n, k, a, b = map(int, input().split())
x, y = a * (n-1), b * (n-1+k-1)
if x > y:
    print(1)
elif x < y:
    print(2)
else:
    print(0)

Go 解法, 执行用时: 3ms, 内存消耗: 968K, 提交时间: 2023-08-03 17:53:41

package main

import "fmt"

func main() {
    var n, k, a, b int
    fmt.Scan(&n, &k, &a, &b)
    x := (n + k - 2) * b
    y := (n - 1) * a
    if x == y {
       fmt.Println(0) 
    } else if x < y {
        fmt.Println(1)
    } else {
        fmt.Println(2)
    }
}

上一题