Назвемо не порожній список рядків mes, якщо виконуються такі умови:
- Кожен перелічений рядок є не порожнім і використовує лише символи, які зустрічаються в першому рядку.
- Кожен наступний рядок точно на один символ довший за попередній рядок.
- Жоден рядок у списку не є послідовністю будь-якого іншого рядка у списку.
Термін "меса" походить від подібного візуалізації (де xмають бути різні символи):
xx..x
xx..xx
xx..xxx
.
.
.
xx..xxx..x
NB: Це математичний факт, що лише задано багато мес починається з заданого рядка. Зверніть увагу на відмінність підрядності від підрядка ; наприклад, "anna" - це підряд (але не підрядок) "банана".
Виклик:
- Напишіть найкоротшу програму, яка приймає довільну не порожню буквено-числову рядок введення та виводить кількість мес, що починаються з цього рядка.
Введення (stdin):
- Будь-яка не порожня буквено-числова рядок.
Вихід (stdout):
- Кількість мес, які починаються з вхідного рядка.
Оцінка:
- Переможець - програма з найменшою кількістю байтів.
Приклад мез
Лише одна меса починається з a:
a
Лише одна меса починається з aa:
aa
Багато мес починаються з ab:
ab ab ab ab (and so on)
baa aaa bbb
bbba bbaa
baaaa
aaaaaa
@mellamokb - це різні меси, якщо вони взагалі різняться. Наприклад,
—
res
ab, ab/baa, ab/bbb, ab/bbb/bbaa, ab/bbb/bbaa/baaaa, ab/bbb/bbaa/baaaa/aaaaaaрізні Mesas.
@mellamokb - Ви ставите інші хороші запитання; наприклад, скільки мес максимальної довжини починається з заданого рядка, і яка максимальна довжина. Інші версії цих запитань виправлять алфавіт заданого розміру (розмір алфавіту буде вхідним) і розглядають усі меси (переосмислені без умови №1), які використовують лише літери з даного алфавіту - знову їх є лише кінцево багато.
—
res
ab,bbbяк Меса тільки зупинивши на другий термін. Це дійсно? Або їх завжди потрібно робити якомога довше? Крім того , якщо є кілька можливих перестановки вnthперспективі (наприкладbaa,aba,aab), не всі вони враховуються як окремі месас , а також ( при умови , звичайно , всі вони дотримуються правил)?