题目内容:
1教有一部电梯,每往上一层需要6秒钟,每往下一层需要4秒,每开一次门需要5秒,假设现在有N个人需要从第0层乘坐电梯上楼,请计算完成本趟运行所需要的时间。
说明:
1、假设最开始电梯在0层,N个人从第0层进电梯,中间不再增添新乘客;
2、N个人都到达各自的楼层后,电梯需要回到0层;
3、到同一楼层的人不管有几人,电梯开门的时间总共只需要5秒.
输入格式:
输入数据首先包含一个整数N(0 < N <= 10),表示电梯内的人数;然后是N个人要到的楼层Si( 1 <= Si <= 100 )。
输出格式:
计算并输出完成本趟运行需要的时间。
输入样例:
4 5 3 2 5
输出样例:
65
#include<stdio.h>
#pragma warning(disable:4996)
//避免提示忽略了scanf的返回值,虽然我也不知道那是什么东西
int main()
{
int n, f[10] = {0}, i, j, t, time = 0;
scanf("%d\n", &n);//输入人数
for (i = 1; i <= n; i++) {
scanf("%d", &f[i]);//输入层数
}
for (i = 1; i < n; i++) {
//姑且先让这些家伙要去的楼层乖乖排个序,从小到大
for (j = 1; j < n - i+1; j++)
if (f[j] > f[j + 1]) {
t = f[j];
f[j] = f[j + 1];
f[j + 1] = t;
}
}
i = 0;
while (i<=n) {
if (f[i + 1] > f[i])//现在只存在上楼的
time = time + (f[i + 1] - f[i]) * 6 + 5;
else {
if (f[i + 1] < f[i])//所有人都送到了,那么下楼吧
time = time + (f[i] - f[i+1]) * 4;
}
i++;
}
printf("%d", time);
return 0;
}