In the event of technical difficulties with Szkopuł, please contact us via email at [email protected].
If you would like to talk about tasks, solutions or technical problems, please visit our Discord servers. They are moderated by the community, but members of the support team are also active there.
Bajtazar prowadzi w Bajtogrodzie sklep ze słodyczami. Wśród okolicznych dzieci najpopularniejszymi słodyczami są lizaki waniliowo-truskawkowe. Składają się one z wielu segmentów jednakowej długości, z których każdy ma jeden smak - waniliowy lub truskawkowy. Cena lizaka jest równa sumie wartości jego segmentów; segment waniliowy kosztuje jednego bajtalara, a truskawkowy dwa bajtalary.
Rys. 1: Przykładowy lizak o pięciu segmentach,
trzech truskawkowych i dwóch waniliowych, ułożonych na przemian.
Cena tego lizaka wynosi bajtalarów.
Obecnie Bajtazarowi został na składzie tylko jeden (za to być może bardzo długi) lizak. Sprzedawca zdaje sobie sprawę, że być może nikt nie będzie chciał go kupić w całości, dlatego dopuszcza możliwość łamania go na granicach segmentów w celu uzyskania lizaka o mniejszej długości. Fragment lizaka przeznaczony ostatecznie do sprzedaży musi pozostać niepołamany.
Doświadczenie pokazuje, że klienci najczęściej chcą kupić lizaka za całe swoje kieszonkowe.
Bajtazar zastanawia się, dla wielu możliwych wartości , jak przełamać posiadany lizak tak,
aby otrzymać lizak o cenie równej dokładnie
bajtalarów.
Ponieważ zadanie nie jest wcale proste, poprosił Cię o pomoc.
W pierwszym wierszu standardowego wejścia znajdują się dwie liczby całkowite oraz
(
) oddzielone pojedynczym odstępem.
Oznaczają one odpowiednio liczbę segmentów ostatniego pozostałego w sklepie lizaka oraz liczbę rozpatrywanych wartości
.
Segmenty lizaka są ponumerowane kolejno od 1 do
.
W drugim wierszu znajduje się
-literowy opis lizaka, złożony z liter T i W,
przy czym T oznacza segment truskawkowy, zaś W - waniliowy;
-ta z tych liter opisuje smak
-tego segmentu.
W kolejnych
wierszach znajdują się kolejne wartości
do rozpatrzenia
(
), po jednej w wierszu.
Twój program powinien wypisać na standardowe wyjście dokładnie wierszy
zawierających wyniki dla kolejnych wartości
, po jednym wyniku w wierszu.
Jeśli dla danej wartości
nie da się wyłamać z lizaka spójnego fragmentu o wartości równej
bajtalarów,
należy wypisać słowo NIE.
W przeciwnym przypadku należy wypisać dwie liczby
oraz
(
) oddzielone pojedynczym
odstępem, takie że fragment lizaka złożony z segmentów o numerach od
do
włącznie ma wartość dokładnie
bajtalarów.
Jeśli istnieje wiele możliwych odpowiedzi, Twój program może podać dowolną z nich.
Dla danych wejściowych:
5 3 TWTWT 5 1 7
poprawną odpowiedzią jest:
1 3 2 2 NIE
Wyjaśnienie do przykładu: Przykład opisuje lizak z rys. 1. Segmenty o numerach od 1 do 3 tworzą lizak postaci TWT, wart 5 bajtalarów. Segment numer 2 ma smak waniliowy i kosztuje 1 bajtalara. Z tego lizaka nie da się w żaden sposób uzyskać lizaka wartego 7 bajtalarów.
Autor zadania: Jakub Pachocki.