PAT 甲级 1008 Elevator 模拟

地址  https://pintia.cn/problem-sets/994805342720868352/problems/994805511923286016

题目大意

电梯起始位置为0  接受N个楼层请求,电梯上升一层需要时间6秒,下降一层需要时间4秒,停靠的楼层需要等待时间5秒

输入一系列楼层请求,请计算需要多少时间

输入格式

一行起始输入整数N 表示有N个楼层请求 后面接着输入N个数字表示楼层请求 空格隔开

输出格式

输出一个数字表示需要完成N个楼层请求的总时间 

输入样例:
3 2 3 1
输出样例:
41

算法1
这个题目比较简单 就是纯模拟
一开始初始化当前位置是0 然后每接受一个楼层请求 就判断是上升还是下降
加入相应的时间,最后加入请求数*5 (每次请求都要停止等待5秒)

#include <iostream>

using namespace std;

const int N =150;

int n;
int arr[N];

int main(){
    cin >> n;
    int curr =0; int ans =0;
    for(int i = 0;i < n;i++){
        cin >> arr[i];
        if(arr[i] >curr){
            ans += (arr[i]-curr)*6;
        }
        if(arr[i]<curr){
            ans += (curr-arr[i])*4;
        }
        curr=arr[i];
    }
    ans += 5*n;

    cout << ans << endl;


    return 0;
}

 

 

posted on 2021-02-11 11:30  itdef  阅读(72)  评论(0编辑  收藏  举报

导航