Jim的实验
时间限制:1000 ms | 内存限制:65535 KB
难度:3
- 描述
-
Jim进行一个实验来测量一些海绵状材料的湿度水平。实验是在一个封闭的房间进行,下图是从侧面来观察。房间的长度是N cm,在天花板上有N个滴水器。第一个滴水器固定在离左边墙的0.5cm处,每个滴水器距离1cm(如图)。同时在下面会有M个海绵,每个海绵的长度是一样的,都是长Lcm。每个海绵会吸收所以滴落在他上面的水滴。海绵的标号是从上到下的。- 输入
- 第一行包括一个整数T,代表有T组测试数据;
每组测试数据第一行包括两个数N(1<=N<=50),代表房间的长度;
接下来的一行包括N个整数,第i个数num_i代表第i个滴水器每分钟滴水量(0=<num<=60)。
第三行包括两个整数 M,L,分别代表海绵的个数,和海绵的长度(0<M<N);
接下来一行包括M个整数,第i个数dis_i代表第i个海绵左端离左边墙的距离(0<=dis<=N-L),(dis_i按降序给出);
- 输出
- 输出占一行,共M个数;ans_i代表第i个海绵每分钟吸收的水滴数。每个数用空格隔开。
- 样例输入
-
3
-
6
-
3 4 1 1 5 6
-
3 3
-
3 1 0
-
8
-
15 10 20 3 8 7 30 20
-
2 3
-
5 1
-
4
-
2 5 1 3
-
3 2
-
2 0 0
- 样例输出
-
12 5 3
-
57 33
-
4 7 0
-
AC码:
-
#include<stdio.h> int main() { int T,i,j,len,n,m,L,b; int num[55],a[55]; scanf("%d",&T); while(T--) { scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&num[i]); } scanf("%d%d",&m,&L); len=n; for(i=0;i<m;i++) { scanf("%d",&b); a[i]=0; if(len<=b) continue; if(len>b+L) len=b+L; for(j=b;j<len;j++) a[i]+=num[j]; len=b; } for(i=0;i<m;i++) printf("%d ",a[i]); printf("\n"); } return 0; }
NYOJ 683 Jim的实验,布布扣,bubuko.com
时间: 2024-10-15 21:17:30