Псевдоавтомат#4608

Псевдоавтомат

1 секунда
256 мегабайтів
Дуже легка

Задано рядок . Побудувати детермінований скінченний автомат, який приймає усі суфікси рядка (і можливо інші скінченні рядки). Автомат повинен складатись з мінімального числа станів. Кожен стан автомату оголошується фінальним. Початковий стан має номер .

На зображенні нижче показано автомат з тестового прикладу для рядка "abacaba".

Вхідні дані

У єдиному рядку слово , яке складається з рядкових латинських літер.

Вихідні дані

У першому рядку два числа і — кількість станів та кількість переходів. Далі рядків, у кожному з яких по два числа a_i, b_i та літера c_i, які позначають наявність переходу зі стану a_i у b_i по літері c_i. Переходи можна виводити у довільному порядку. Якщо розв'язків декілька, можете вивести довільний з них.

Обмеження

1 \le |S| \le 5000

1 \le a_i, b_i \le N

'a' \le c_i \le 'z'

Приклади

Приклад 1

Loading
Loading