首页 > 代码库 > NYOJ 683 Jim的实验
NYOJ 683 Jim的实验
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; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。