Baltic OI '07 P3 - Sound
View as PDFBaltic Olympiad in Informatics: 2007 Day 1, Problem 3
In digital recording, sound is described by a sequence of numbers representing the air pressure, measured at a rapid rate with a fixed time interval between successive measurements. Each value in the sequence is called a sample.
An important step in many voice-processing tasks is breaking the recorded sound into chunks of
non-silence separated by silence. To avoid accidentally breaking the recording into too few or too
many pieces, the silence is often defined as a sequence of samples where the difference between
the lowest and the highest value does not exceed a certain threshold
.
Write a program to detect silence in a given recording of samples according to the given parameter
values
and
.
Input Specification
The first line of the file contains three integers:
, the number of samples in
the recording;
, the required length of the silence; and
, the
maximal noise level allowed within silence.
The second line of the file contains integers
for
, separated
by single spaces: the samples in the recording.
Output Specification
The output should list all values of such that
.
The values should be listed in increasing order, each on a separate line.
If there is no silence in the input, write NONE on the first and only line of the output.
Sample Input
7 2 0
0 1 1 2 3 2 2
Sample Output
2
6
Comments
If you're getting MLE on Java, it may be because you're using
BufferedReaderand callingbr.readLine(). 32M is not big enough to hold the second line of input, which can be very long.java.util.Scanneris too slow. I usedbr.read()to take input: