文章
12
粉丝
411
获赞
28
访问
169.1k
/*Time Limit: 1000 ms
Memory Limit: 256 mb
众所周知,北校区的博学楼是有11层楼,并且有三个电梯。
假设电梯上升一层需要6秒,下降一层需要4秒,在每在一层停留需要3秒。
电梯初始在1楼,现在给你电梯要去楼层顺序,
例如3,2,5代表电梯从1楼到达三楼,再从三楼到达2楼,再从2楼到达5楼。
问通过这些操作,电梯需要花多少时间?
例如3,2,5,从1楼到3楼需要2 * 6秒,然后停留3秒,再从3楼到2楼需要4秒,再停留3秒,
再由2楼到5楼需要3 * 6秒,停留3秒。所以总共需要2 * 6 + 3 + 4 + 3 + 3 * 6 + 3 = 43。
如果上次要停留的楼层与这次相同,则只需要再停留3秒即可。*/
#include <stdio.h>
int func(int a[],int n);//函数声明
int main(){
int t,n,i;
scanf("%d",&t);//有t组数据输入
while(t--){
int result = 0;//耗时
scanf("%d",&n);//记录每组数据的个数
int a[n];//定义数组,存放每组数据
i = n;
while(i--){
scanf("%d",&a[n-1-i]);//记录现在所在楼层
}
result = func(a,n);//计算耗时
printf("%d\n",result);//输出result
}
return 0;
}
int func(int a[],int n){
int sum = 0,i;
int last = 1;//定义初始楼层
int now;//定义现在所在楼层
for(i=0;i<n;i++){
now = a[i];//现在所在楼层
if(now>last){
sum += 3 + (n...
登录后发布评论
暂无评论,来抢沙发