Аудиокодирование (НТО 23/24 :: ТБС)
Легенда
Заглянем в будущее. Землю населили созданные людьми робо-пчёлы, робо-шмели и робо-осы, которые общаются с представителями своего вида аудио-сигналами: робо-пчёлы в «речи» применяют амплитудную модуляцию, потому поют то звонко, то тихо, а робо-шмели — широтно-импульсную, и их буквы можно различать по тому, насколько долго эту букву жужжат. Вам дана роль робо-осы-переводчика, который должен помочь робо-шмелю понять робо-пчелу.
Как у переводчика аудио-сигналов, ваша задача — декодировать аудио и закодировать по-другому. Представлена запись сигнала в амплитудном коде с фиксированной шириной импульса (в пределах 50±5 мс). Необходимо преобразовать амплитудный код в широтно-импульсный, где буква кодируется длинами импульсов высокого уровня (более 4000 единиц), разделяемых импульсом низкого уровня (больше 0, но меньше 100 единиц) шириной не менее 50 мс. Диапазоны амплитуд и ширин импульсов для каждой буквы приведены в таблице:
Буква | Амплитуда в единицах АЦП | Ширина импульса в мс |
A | 100-200 | 50±3 |
B | 300-400 | 60±3 |
C | 500-600 | 70±3 |
D | 700-800 | 80±3 |
Входной и выходной сигналы представлены набором измерений в единицах АЦП с частотой дискретизации 1 кГц. Значения амплитуды во входном сигнале за пределами указанных следует игнорировать. Гарантируется, что во входном сигнале отсутствуют шумы, а длительность фронтов составляет не более 10 мс. В выходном сигнале ширины импульса необходимо соблюдать строго (по указанной таблице), длительность фронтов должна быть нулевой, в начале и конце передачи необходимы разделительные импульсы (со значением уровня 0), шириной не менее 50 мс. Выходной сигнал должен длиться ровно секунду (т.е. 1000 измерений).
Формат входных данных: произвольное число строк, в каждой – целое число.
0
0
30
60
120
120
120
120
70
40
0
0
Формат выходных данных: 1000 целых чисел в отдельных строках.
0
0
4500
4500
20
20
4500
4500
4500
0
0
Time Limit: 5 секунд
Memory Limit: 256 MB
Для решения этой задачи у вас есть 20 попыток.