Musica amb Bambino


Enviar solució

Punts: 10 (parcial)
Temps Límit: 1.0s
Límit de memòria: 64M

Autor/a:
tipus del problema
Strings
Categoria
Lliga de Programació FP
Llenguatges permesos
Bash, C#, C++, Haskell, Java, Kotlin, PHP, Python

musica

Bambino està aprenent teoria musical! Avui, el seu professor està explicant els acords de sèptima dominant. En la teoria musical occidental, les notes són les següents:

C C# D D# E F F# G G# A A# B C

Cal tenir en compte que aquesta llista és cíclica. Dues notes consecutives formen un semitò. Un acord de sèptima dominant en posició fonamental és una col·lecció de 4 notes tal que:

La primera i la segona nota formen una tercera major (estan separades per 4 semitons) La segona i la tercera nota formen una tercera menor (estan separades per 3 semitons) La tercera i la quarta nota també formen una tercera menor

Per exemple, l'acord G B D F és un acord de sèptima dominant en posició fonamental. Finalment, el professor de Bambino parla sobre les inversions:

La primera inversió de G B D F és B D F G (desplaçament cíclic d'1 cap a l'esquerra) La segona inversió de G B D F és D F G B (desplaçament cíclic de 2 cap a l'esquerra) La tercera inversió de G B D F és F G B D (desplaçament cíclic de 3 cap a l'esquerra)

(Cal tenir en compte que en cada cas les notes fan la volta) Un cop acabada la classe, el professor de Bambino li assigna deures: comprovar si un acord és un acord de sèptima dominant, i si està en posició fonamental, primera inversió, segona inversió o tercera inversió.

Entrada

La primera línia comença amb un únic enter T (1 ≤ T ≤ 10), el nombre de casos de prova. Segueixen T casos de prova. Cada cas de prova contindrà una línia: un acord compost de 4 notes. Per als tres primers casos, tots els acords de sèptima dominant vàlids estaran en posició fonamental. Per als cinc primers casos, tots els acords de sèptima dominant vàlids estaran en posició fonamental o en primera inversió.

Sortida

Per a cada cas de prova, imprimeix "root" si l'acord està en posició fonamental, "first" si l'acord està en primera inversió, "second" si l'acord està en segona inversió, "third" si l'acord està en tercera inversió, o "invalid" si l'acord no és una sèptima dominant.

Exemple d'Entrada
Copy
3
G B D F
G A B C
B D F G

Exemple de Sortida

Copy
root
invalid
first

Comentaris

En aquests moments no hi ha comentaris.