Синтезатори звуку використовують генератори конвертів, щоб контролювати, як певні параметри звуку (наприклад, загальна гучність) змінюються з часом. У багатьох синтезаторах конверт визначається чотирма параметрами, як це представлено на наступному малюнку з Вікіпедії :
- Час атаки (А) : час, необхідний для досягнення конвертів максимальним рівнем, починаючи з нуля, коли клавіша вперше натиснута.
- Час занепаду (D) : час, необхідний для досягнення конвертів заданого рівня підтримки.
- Підтримуючий рівень (S) : рівень, який підтримується після першої атаки та занепаду, до тих пір, поки натискається клавіша.
- Час випуску (R) : час, необхідний, щоб конверт досяг нуля, коли ключ відпущений.
Змагання
Введіть чотири параметри A, D, S, R та побудуйте конверт .
Параметри будуть цілими значеннями від 0 до 127 .
Максимальний рівень передбачатиметься (досягнуто в кінці фази атаки) , щоб бути 127 .
Горизонтальний відрізок на рівні підтримки передбачатиметься , щоб мати тривалість 64 (у фактичному звуку ця тривалість не фіксується, а визначається кількістю часу , що ключ утримується).
Формат та інші деталі
На виході має бути зображення у растровому або векторному форматі. Якщо це растр, полігональна лінія повинна займати принаймні 50 пікселів вертикально по горизонталі.
Зображення може бути відображене або створене у вигляді файлу у стандартному форматі зображення. Файл може бути записаний на диск, або його точний вміст може бути виведений або в STDERR, або як аргумент повернення функції.
Графік повинен містити лише багатокутну лінію, яка визначає конверт. Шкала кожної осі можна вільно обирати. Інші елементи, такі як лінії осі, числові мітки або кольори ліній, необов’язкові.
Засоби введення та формат гнучкі, як завжди. Наприклад, ви можете взяти чотири числа в будь-якому порядку або масив, що їх містить. Можна надати програму або функцію . Стандартні лазівки заборонені.
Виграє найкоротший код у байтах.
Тестові справи
Введення у форматі [A D S R]
. Зауважте, що масштаб у кожної фігури різний (відповідно до правила, що шкалу можна вільно обирати)
[15 30 70 40]
[64 64 64 64]
[0 10 50 80]
[0 0 90 80]
[5 50 0 0]
[5 50 0 80]
[24 32 127 48]