地址 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; }