一年一度的校赛开始了,小武虽然不需要参赛,却还得参与赛前的题目测试工作。为了保证比赛题目数据无误,唐大官要求小武必须把每一个题都做一遍— —||。在无法抗命的情况下,小武决定采用“顺序做题法”,即从第一题开始做,做完之后再做第二题,然后是第三题,以此类推……由于小武课程比较多,时间和精力有限,因此每天最多只能做K分钟的题目,且每个题目只能在一天内做完(如果有一个题第一天只完成了一部分,则第二天必须从头开始做此题,因为他已经看不懂自己前一天写的代码了=,=)。现在已知小武做每个题所需要的时间,问小武最少需要多少天才能完成所有的题目。
第一行一个整数T(T<50),表示数据组数。
接下来有T行数据。对每组数据,先读入两个数N(0<N<=104)、K(0<K<=1000),表示有N个题,小武每天最多做题K分钟。接下来是N个数a[0]--a[N-1],分别表示做每个题所需的时间(分钟)。题目保证 0<a[i]<=K(0<=i<=N-1)。
对于每组数据,输出一个数D,表示小武最少需要多少天才能完成所有的题目。
1 #include <stdio.h>
2 void main()
3 {
4 int T;
5 scanf("%d",&T);
6 int n,k;
7 while(T--)
8 {
9 scanf("%d%d",&n,&k);
10 int a[10000];
11 int num = 0,s=0;
12 for (int j = 0;j<n;j++)
13 {
14 scanf("%d",&a[j]);
15 }
16 for (int j = 0;j<n;j++) //遍历每个输入
17 {
18 s = s + a[j]; //累加
19 if (s==k) //若刚好到一天的上限,计数加一,重新累加
20 {
21 num++;
22 s=0;
23 }
24 else if (s>k) //若超过一天的上限,计数加一,把这道题放到后一天,再重新累加
25 {
26 num++;
27 s=a[j];
28 }
29 }
30 if(s>0) //所有数都遍历完了,如果有题目放到了后一天,则天数加一
31 num++;
32 printf("%d\n",num);
33 }
34 }