HDU1008

来源:互联网 发布:怎样在淘宝上发布图片 编辑:程序博客网 时间:2024/06/05 19:02

问题链接:HDU1008 ZOJ2108 Elevator。基础训练题,用C语言编写程序。

每行的数据有n+1个数据,第一个数据是n,然后是n个数据,即n个要停的层的数据。

电梯开始在0层,上一层需要6秒,下一层需要4秒,停一次需要5秒。电梯最后不需要回到0层。

问题是把所有人都送到各层总共需要多少时间。

AC程序如下:

[cpp] view plain copy
print?
  1. /* HDU1008 ZOJ2108 Elevator */  
  2.   
  3. #include <stdio.h>  
  4. //#include <stdlib.h>  
  5.   
  6. #define MAXN 100  
  7.   
  8. int main(void)  
  9. {  
  10.     int n, stop[MAXN+1], count, i;  
  11.     int currposit;  
  12.   
  13.     while(scanf("%d", &n) != EOF) {  
  14.         // 判断结束条件  
  15.         if(n == 0)  
  16.             break;  
  17.   
  18.         // 读入数据  
  19.         for(i=0; i<n; i++)  
  20.             scanf("%d", &stop[i]);  
  21.   
  22.         // 计算  
  23.         count = 0;  
  24.         currposit = 0;  // 电梯开始在0层  
  25.         for(i=0; i<n; i++) {  
  26.             if(stop[i] > currposit)  
  27.                 count += (stop[i] - currposit) * 6;  
  28.             else  
  29.                 count += (currposit - stop[i]) * 4;  
  30.             count += 5;  
  31.   
  32.             currposit = stop[i];  
  33.         }  
  34.   
  35.         // 输出结果  
  36.         printf("%d\n", count);  
  37.     }  
  38.   
  39.     return 0;  
  40. }  


原创粉丝点击