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.