Powiedzmy, że Twoim zadaniem jest malowanie tyczek, a klient prosi o pomalowanie tyczki za pomocą 4 czerwonych odcinków i 3 żółtych odcinków. Możesz to zrobić dość łatwo w następujący sposób:
r y r y r y r
Tylko żółte i czerwone paski. Powiedzmy teraz, że klient prosi o pomalowanie słupa za pomocą 2 czerwonych sekcji, 2 żółtych sekcji i 1 zielonej sekcji . Istnieje kilka sposobów na pomalowanie słupa
g y r y r
y g r y r
y r g y r
y r y g r
y r y r g
g r y r y
r g y r y
r y g r y
r y r g y
r y r y g
y r g r y
r y g y r
Dokładniej, to 12 sposobów na pomalowanie słupa. To wysadza więcej kolorów i sekcji, które są zaangażowane
Teraz, jeśli klient mówi, że chce 3 czerwonych sekcji i 1 żółtej sekcji, nie ma sposobu, aby pomalować taki słup. Ponieważ bez względu na to, jak spróbujesz ułożyć sekcje, dwie czerwone sekcje się dotkną, a gdy dwie czerwone sekcje się dotkną, staną się pojedynczą czerwoną sekcją.
I to właściwie nasza jedyna zasada malowania tyczek
Sąsiednie sekcje mogą nie być tego samego koloru
Zadanie
Biorąc pod uwagę listę wymaganych kolorów i przekrojów, podaj liczbę możliwych sposobów pomalowania słupa zgodnie z życzeniem. Możesz przedstawiać kolory w dowolny rozsądny sposób (liczby całkowite, znaki, łańcuchy), ale nigdy nie otrzymasz więcej niż 255 różnych kolorów jednocześnie. Jeśli chcesz, możesz nawet nie mieć nazw kolorów i po prostu zrób listę sekcji, jeśli jest to łatwiejsze.
Przypadki testowe
Są one trudne do obliczenia ręcznie, zwłaszcza gdy stają się większe. Jeśli ktoś ma sugerowany przypadek testowy, dodam go.
[4,3] -> 1
[2,2,1] -> 12
[3,1] -> 0
[8,3,2] -> 0
[2,2,1,1]-> 84
[1, 1, 1, 1, 2, 2, 2]
? Tak przypuszczam.