2873: 【例58.3】 电梯运行时间

内存限制:64 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:2 解决:2

题目描述

电梯每向上运行一层需要 $6$ 秒钟,向下运行一层需要 $4$ 秒钟,每开门一次需要 $5$ 秒(如果有人到达才开门),并且每下一个人需要加 $1$秒。
特别指出,电梯最开始在 $0$ 层,并且最后必须再回到 $0$ 层才算一趟任务结束。假设在开始的时候已知电梯内的每个人要去的楼层,你能计算出完成本趟任务需要的总时间吗?

输入

第一行,一个正整数$n$($1 < n < 10^5$),表示乘坐电梯的人数。
第二行,$n$个正整数,$a_i$ ($1 < a_i < 10^7$)表示第i个人要去的楼层。

输出

仅一行,一个正整数,表示完成这趟任务需要的时间。

样例输入 复制

4
3 7 3 1

样例输出 复制

89

提示

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[1000010];
int main()
{
    ll n,i;cin>>n;
    for ( i=0;i<n;i++)
        cin>>a[i];
    sort(a,a+n);
    ll time=a[n-1]*10; //最高层数
    time+=(unique(a,a+n)-a)*5; //计算不重复楼层的数目
    time+=n;
    cout<<time;
    return 0;
}