一、题目

时间限制: 
1000ms
 
内存限制: 
65536kB
通过率85%  通过人数1017        尝试人数1197
描述
小朋友玩跳绳比赛,要计算在一分钟内跳了多少下.假设每秒钟跳一下,如果中途失败了,则要花三秒钟后才能开始重跳.一般小朋友跳绳一分钟要跳坏好几次.现在给出小朋友每次跳坏时已经跳的总数,求小朋友在一分钟内跳了多少下.(请注意分析示例数据.)
输入
第一行为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
提示
提示,在跳绳比赛时,你可能已经超时了,但自己还在计数,但裁判已经停止计时并得到成绩了.这里相当与自己计数.因此,并非跳坏的时候都是在前一分钟以内.请注意分析示例数据.

二、思路

挨个数据判断是否已经时间结束然后根据失败次数计算耽误时间,

注意:①考虑57-59秒失败的特殊情况

     ②对于超出60秒的多余数据的处理

三、测试数据

输入:1

   4 38 56 63 68

输出:56

四、ac源代码

#include <stdio.h>

int main()
{
int i,j,n,w,sum,flag,k,x;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&w);flag=0;
for(j=0;j<w;j++)
{
scanf("%d",&sum);
if(flag!=-1&&(sum+3*(j+1))>59)
{flag=1;break;}//判断时间是否结束
}
for(k=j+1;k<w;k++)
scanf("%d",&x);//将剩余数据吃掉

if(flag&&(sum<=60)&&((sum+3*j)<=60))
printf("%d\n",sum);//若在57-59秒失败,直接输出结果
else
printf("%d\n",60-j*3);//否则减去失败耽误时间
}
return 0;
}


posted on 2011-10-14 01:16  小狗狗ACM  阅读(500)  评论(0编辑  收藏  举报