烤烤是时间管理大师,这一天他和小伙伴们一起坐电梯。
他注意到电梯每向上运行一层需要6秒钟,向下运行一层需要4秒钟,每开门一次需要5秒(如果有人到达才开门),并且每下一个人需要1秒。
烤烤的小伙伴们都登上了电梯,此时电梯在0层,并且电梯最后必须再回到0层才算任务结束。假设烤烤已知每个小伙伴要去的楼层,你能计算出完成本趟任务至少需要多少时间吗?
输入格式
第一行,一个正整数 n (1≤n≤10^5),表示乘坐电梯的小伙伴人数。
第二行,n个正整数,ai (1≤ai≤10^7)表示第i个人要去的楼层。
输出格式
仅一行,一个正整数,表示完成这趟任务需要的时间。
Sample 1
Input | Output |
---|---|
4 3 7 3 1 | 89 |
Time limit | 1000 ms |
Memory | 31072 kB |
解题思路:
这道题本身并不难,只需求出一共要开多少次门,电梯要到达的最高层数即可
所以总时间可以这样表示(开门次数*5+(4+6)*最高层+总人数*1)。
话不多说,上代码:
#include<bits/stdc++.h>
using namespace std;
int main() {int n,sum=0;cin>>n;int a[n+1];for(int i=1; i<=n; i++)cin>>a[i];sort(a+1,a+1+n);for(int i=1; i<=n; i++)if(a[i]!=a[i-1])sum++;cout<<sum*5+a[n]*10+n;
}