百练2705--跳绳游戏

2705:跳绳游戏

总时间限制:1000ms  内存限制:65536kB

描述
小朋友玩跳绳比赛,要计算在一分钟内跳了多少下.假设每秒钟跳一下,如果中途失败了,则要花三秒钟后才能开始重跳.一般小朋友跳绳一分钟要跳坏好几次.现在给出小朋友每次跳坏时已经跳的总数,求小朋友在一分钟内跳了多少下.( 请注意分析示例数据.)
输入
第一行为n个小朋友
其余各行,每行第一个整数是跳坏的次数m,其余m个整数是跳坏时累计跳了多少下.
输出
输出相应小朋友头一分钟内跳了多少下.
样例输入
6
0
3 12 23 45 
1 17
4 10 20 30 40
5 10 20 30 40 58 
6 10 20 30 40 47 60
样例输出
60
51
57
48
48
47
提示
提示,在跳绳比赛时,你可能已经超时了,但自己还在计数,但裁判已经停止计时并得到成绩了.这里相当与自己计数.因此,并非跳坏的时候都是在前一分钟以内.请注意分析示例数据.
来源
计算概论05
 
//两个坑点;
  <1>  题中所给数据为每次跳错之前跳对次数总和 ;
  <2>  如果跳绳错误发生在57 58 59 60(s)的时候; 需要特殊考虑
 1 #include <stdio.h>
 2 int main()
 3 {
 4     int n ;
 5     scanf("%d", &n) ;
 6     while(n--)
 7     {
 8         int sum, i, m ;
 9         scanf("%d", &m) ;
10         int flag = 0 ;
11         for(i=1; i<=m; i++)
12         {
13             scanf("%d", &sum) ;
14             if(sum + 3 * i >= 60 )
15             { flag = 1; break ; }      //判断时间时是否结束 ; 
16             
17         }                   
18         //printf("%d\n", i) ;          // i的值容易搞错 ; 
19         int j, dy ;
20         for(j=i+1; j<=m; j++)          // 输入已经超过一分钟, 无效的跳绳数 ; 
21         scanf("%d", &dy) ;
22         if(sum <= 60 && sum+(i-1)* 3<=60 && flag)
23         printf("%d\n", sum) ;          // 在57 ~60(s),直接输出结果 ; 
24         else                                
25         printf("%d\n", 60- 3*(i-1) ) ;// 否则减去失败次数 ; 
26     }
27     return 0 ;
28 }

 

你可能感兴趣的:(游戏)