- Описание
- Отправленные решения
54. Граф подстрок
Антон стажируется в группе обработки комментариев и отзывов. Для проверки гипотезы об автоматической генерации текстов Антон должен построить граф подстрок существующих текстов.
Антон берёт все имеющиеся у него слова и действует следующим образом:
- слово образует слова длины 3: , , ;
- если для какого-то из слов еще нет вершины в графе, то она создается;
- для каждой пары слов добавляется ориентированное ребро веса 1, или увеличивается вес существующего ребра на 1.
Таким образом получается граф с вершинами и ориентированными рёбрами. Между некоторыми вершинами может быть несколько дуг (от к и от к ).
По заданному набору слов помогите Антону найти количество вершин в графе и вывести ориентированные рёбра между вершинами.
Формат ввода
В первой строке записано одно целое число () — количество слов, имеющихся у Антона.
В каждой из следующих строк записано одно слово (). Все слова состоят из строчных букв английского алфавита.
Формат вывода
В первой строке выведите количество вершин в графе .
Во второй строке выведите количество пар вершин , между которыми есть ориентированные ребра.
В каждой из следующих строк выведите слово , соответствующее началу ребра, затем слово , соответствующее концу ребра, и вес ориентированного ребра из вершины в .
Рёбра вы можете перечислить в произвольном порядке.
Ограничения
Ограничение времени
6 с
Ограничение памяти
128 МБ
Пример 1
2
aaaaaaaaaaaaa
aaabbbaaabbba
6
7
aaa aaa 10
aaa aab 2
aab abb 2
abb bbb 2
bbb bba 2
bba baa 1
baa aaa 1
Пример 2
2
abab
baba
2
2
aba bab 1
bab aba 1
Пример 3
1
qwertyqwertyqwertyqwertyqwerty
6
6
qwe wer 5
wer ert 5
ert rty 5
rty tyq 4
tyq yqw 4
yqw qwe 4