Twoim zadaniem jest pobranie sekwencji znaków (muzyki) jako danych wejściowych (w funkcji lub programie) i wydrukowanie (lub zwrócenie) muzyki tak, jak wyglądałaby w pozytywce.
Otrzymasz tylko znaki ABCDEFG.()
jako dane wejściowe, a dane wejściowe nigdy nie będą puste. Możesz również otrzymać litery małymi literami, jeśli chcesz.
To jest pusta pozytywka o długości 3:
.......
.......
.......
Jak widać, wiersze mają 7 znaków, a ponieważ długość pozytywki wynosi 3, mamy 3 wiersze. Są tylko .
tutaj, ponieważ pozytywka jest pusta. Dodajmy do tego trochę muzyki!
Najpierw tworzymy pozytywkę. W tym przykładzie wejście będzie CDAG.DAG
.
Długość CDAG.DAG
wynosi 8, więc potrzebujemy pozytywki o długości 8:
.......
.......
.......
.......
.......
.......
.......
.......
Następnie odczytujemy dane wejściowe, po jednym znaku na raz, i umieszczamy znak w O
odpowiednim miejscu.
Pierwszą postacią jest C
, a położenie każdej nuty jest równoważne z tym (dodałem spacje dla przejrzystości):
A B C D E F G
. . . . . . .
. . . . . . .
(and so on)
Jeśli znakiem wejściowym jest a .
, to po prostu wypisujemy pusty wiersz.......
Tak, C
byłoby 3rd znak wzdłuż. Umieśćmy go w pozytywce na górze:
..O....
.......
.......
.......
.......
.......
.......
.......
Powtórzymy ten proces dla wszystkich pozostałych znaków (tekst w nawiasach ma tylko pokazać notatkę, której nie powinieneś wyprowadzać):
..O.... (C)
...O... (D)
O...... (A)
......O (G)
....... (.)
...O... (D)
O...... (A)
......O (G)
Ze względu na to, jak muzyka pudełka pracy, jeśli używamy znak inny niż O
, .
oraz <insert newline here>
, takich jak miejsca, w naszej mocy, to nie będzie odgrywać właściwą muzykę!
To jest akord:
(ACE)
Akord ten poucza nas grać nuty A
, C
a E
w tym samym czasie. Nigdy nie będzie pauzy (tj. A .
) w akordzie.
Oto jak byłoby napisane:
O.O.O...
I tak to może wyglądać w muzyce: B(ACE)D
Nigdy nie otrzymasz akordu z akordu, tzn. To nie będzie ważne: (AB(CD)EF)
ani to A(B())
:, a akord nie będzie pusty, tzn. Nie będzie prawidłowy:A()B
Nigdy nie otrzymasz nieprawidłowego wejścia.
Przykłady:
B(ACE)D
.O.....
O.O.O..
...O...
B
.O.....
GGABC
......O
......O
O......
.O.....
..O....
...
.......
.......
.......
A..F.C(DA).
O......
.......
.......
.....O.
.......
..O....
O..O...
.......
.(ABCDEF)
.......
OOOOOO.
Dozwolone jest końcowe / białe spacje na wydruku.
Ponieważ jest to kod-golf , wygrywa najkrótszy kod!
()
dwa razy (np .AB(CD)E(FG)
:)?