#12028. Elevator Simulation / 电梯问题

Elevator Simulation / 电梯问题

Problem J41: Elevator Simulation / 电梯问题

版权信息: JLOJ2356 · 简单模拟法题目


任务总览

任务名称 时间限制 内存限制 分数
电梯问题 1 sec 1024 MB 10 points

题目描述

某城市中最高的建筑物里只有一个电梯。

你得到了一个​ 请求列表 ​,它由 NN 个正整数构成,表示电梯按顺序需要到达的楼层。

电梯:

  • 从第 0 层 开始;
  • 每次向上移动一层楼需要 ​ 6 秒 ​;
  • 每次向下移动一层楼需要 ​ 4 秒 ​;
  • 每次 停留 在某个楼层(无论是否有移动)都会耗费 ​ 5 秒 ​(包括第一站)。

请你模拟电梯运行,计算完成整个请求列表所需的总时间。


输入格式

输入包含多组测试数据。每组测试数据格式如下:

  • 第一行为一个整数 NN1N<1001 \leq N < 100),表示请求楼层数;

    • 接下来一行包含 NN 个正整数,表示电梯停靠的楼层号。

    当输入行为一个单独的数字 0 时表示输入结束(不处理该组数据)。


    输出格式

    每组数据输出一行,表示电梯完成该组请求所需的总时间(单位为秒)。


    输入输出样例

    输入示例

    1
    2
    4
    3 2 3 1
    0
    

    输出示例

    17
    41
    

    题目分析与解法

    ✅ 模拟过程:

    1. 电梯初始在 00 层;
    2. 对于请求列表中的每一层楼:
    • 计算当前层与目标楼层的差;
    • 累加上下楼所需的时间;
    • 再加上 5 秒的停靠时间;
    1. 输出所有时间的总和。

边界细节说明

  • 若连续两次请求停在同一楼层,也需加 5 秒;
  • 电梯不需要回到底层。

时间复杂度分析

操作 复杂度
模拟每组请求 O(N)O(N)
多组数据 O(TN)O(T \cdot N)T<100T<100