Syntezatory dźwięku używają generatorów obwiedni do kontrolowania, w jaki sposób niektóre parametry dźwięku (takie jak ogólna głośność) zmieniają się z czasem. W wielu syntezatorach obwiednia jest zdefiniowana przez cztery parametry, jak pokazano na poniższym rysunku z Wikipedii :
- Czas ataku (A) : czas potrzebny na osiągnięcie przez kopertę maksymalnego poziomu, zaczynając od zera, gdy klawisz zostanie naciśnięty po raz pierwszy.
- Czas rozpadu (D) : czas potrzebny do osiągnięcia przez kopertę określonego poziomu podtrzymania.
- Poziom podtrzymania (S) : poziom, który jest utrzymywany po pierwszym ataku i rozpadzie, dopóki wciśnięty jest klawisz.
- Czas zwolnienia (R) : czas potrzebny do osiągnięcia przez kopertę zera po zwolnieniu klucza.
Wyzwanie
Wprowadź cztery parametry A, D, S, R i wykreśl obwiednię .
Parametry będą liczbami całkowitymi od 0 do 127 .
Maksymalny poziom (osiągnął na koniec fazy ataku) będą traktowane jako 127 .
Odcinka poziomego na poziomie utrzymania będą zakłada się, że czas trwania 64 (w rzeczywisty czas trwania dźwięku to nie jest stała, lecz zależy od ilości czasu, że klucz jest utrzymywany).
Format i dalsze szczegóły
Wyjście powinno być obrazem w formacie rastrowym lub wektorowym. Jeśli jest to raster, linia wielokątna powinna zajmować co najmniej 50 pikseli w pionie i poziomie.
Obraz może być wyświetlany lub wytwarzany jako plik w standardowym formacie obrazu. Plik może być zapisany na dysku lub jego dokładna zawartość może być wyprowadzona do STDERR lub jako argument powrotu funkcji.
Wykres musi zawierać tylko wielokątną linię, która określa obwiednię. Skalę każdej osi można dowolnie wybierać. Inne elementy, takie jak linie osi, etykiety numeryczne lub kolory linii są opcjonalne.
Środki wprowadzania i format są jak zwykle elastyczne . Na przykład możesz wziąć cztery liczby w dowolnej kolejności lub tablicę je zawierającą. Można zapewnić program lub funkcję . Standardowe luki są zabronione.
Najkrótszy kod w bajtach wygrywa.
Przypadki testowe
Dane wejściowe są w formacie [A D S R]
. Należy pamiętać, że skala jest różna na każdej figurze (zgodnie z zasadą, że skala może być dowolnie wybierana)
[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]