3889: 静音段silence
内存限制:512 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:77
解决:17
题目描述
数字录音中,声音是用表示空气压力的数字序列描述的,序列中的每个值称为一个采样,每个采样之间间隔一定的时间。很多声音处理任务都需要将录到的声音分成由静音段隔开的几段非静音段。静音段通常是这样定义的:m个采样的序列,该序列中采样的最大值和最小值之差不超过一个特定的阈值c。
请你写一个程序,检测n个采样中的静音段。这些静音段之间可以相互重叠。
【数据规模和约定】
对于30%的数据 n<=150 m<=10
对于60%的数据 n*m<=1e7
对于100%的数据 n<=1e6 m<=1e4 c<=1e4 ai<=1e6
【数据规模和约定】
对于30%的数据 n<=150 m<=10
对于60%的数据 n*m<=1e7
对于100%的数据 n<=1e6 m<=1e4 c<=1e4 ai<=1e6
输入
第一行有三个整数n,m,c,分别表示总的采样数、静音段的长度和静音段中允许的最大噪音程度。
第2行n个整数ai,表示声音的每个采样值,每两个整数之间用空格隔开。
输出
列出了所有静音的起始位置i
i满足max(a[i, . . . , i+m−1]) − min(a[i, . . . , i+m−1]) <= c
每行表示一段静音的起始位置,按照出现的先后顺序输出。
如果没有静音则输出NONE。
样例输入 复制
7 2 0
0 1 1 2 3 2 2
样例输出 复制
2
6