Graphic problem
Sigui C = {c0, …, ca − 1} un conjunt amb a colors diferents. Heu de dissenyar collarets amb p vidres, cadascun amb un color de C, i usant almenys dos colors. Però, tenint en compte que els collarets són cíclics, per evitar dissenys repetits heu de generar només els que siguin més petits lexicogràficament. Per exemple, (Green, Green, Blue) és cíclicament equivalent a (Green, Blue, Green), i a (Blue, Green, Green). D’aquests tres dissenys, cal generar només l’últim, perquè és el més petit en ordre lexicogràfic.
A partir d’ara, suposem que p és un nombre primer. En aquest cas, es pot demostrar que hi ha exactament ap − a/p dissenys diferents. Fixeu-vos que això implica que ap − a és múltiple del primer p. Això és precisament el que diu el petit teorema de Fermat, el qual, malgrat el nom, és un dels teoremes més importants de les matemàtiques!
Entrada
L’entrada comença amb tres enters d (senar), p (primer) i a, amb d ≥ 5, 2 ≤ p ≤ 13, i 2 ≤ a ≤ 100, seguit d’a colors diferents en ordre alfabètic, tot en línies diferents.
Sortida
Genereu una imatge de dimensions (d · p, d · ap − a/p ) amb fons ‘Black’, consistent en ap − a/p columnes. Cadascuna té un disseny amb p cercles de diàmetre d. Els dissenys han de sortir ordenats lexicogràficament d’esquerra a dreta. Cap imatge tindrà més de 106 píxels.
Input
25 3 4 Blue Green Red Yellow
Output
(500×75)
Input
9 2 5 Cyan Gold Magenta Pink Tomato
Output
(90×18)