54. Граф подстрок

Не решаласьЛёгкая

Антон стажируется в группе обработки комментариев и отзывов. Для проверки гипотезы об автоматической генерации текстов Антон должен построить граф подстрок существующих текстов.

Антон берёт все имеющиеся у него слова и действует следующим образом:

  • слово S=s1s2...sn1snS=s_{1}s_{2} ... s_{n-1}s_{n} образует n2n-2 слова длины 3: w1=s1s2s3w_{1}=s_{1}s_{2}s_{3}, w2=s2s3s4w_{2}=s_{2}s_{3}s_{4}, w3=s3s4s5w_{3}=s_{3}s_{4}s_{5} \ldots wn2=sn2sn1snw_{n-2}=s_{n-2}s_{n-1}s_{n};
  • если для какого-то из слов wiw_{i} еще нет вершины в графе, то она создается;
  • для каждой пары слов (wi,wi+1)(w_{i},w_{i+1}) добавляется ориентированное ребро веса 1, или увеличивается вес существующего ребра на 1.

Таким образом получается граф GG с vv вершинами и ee ориентированными рёбрами. Между некоторыми вершинами может быть несколько дуг (от aa к bb и от bb к aa).

По заданному набору слов помогите Антону найти количество вершин в графе и вывести ориентированные рёбра между вершинами.

Формат ввода

В первой строке записано одно целое число TT (1T400001 \le T \le 40\,000) — количество слов, имеющихся у Антона.

В каждой из TT следующих строк записано одно слово SiS_i (4Si304 \le |S_i| \le 30). Все слова состоят из строчных букв английского алфавита.

Формат вывода

В первой строке выведите количество вершин vv в графе GG.

Во второй строке выведите количество пар вершин ee, между которыми есть ориентированные ребра.

В каждой из следующих ee строк выведите слово wsw_s, соответствующее началу ребра, затем слово wfw_f, соответствующее концу ребра, и вес ориентированного ребра из вершины wsw_s в wfw_f.

Рёбра вы можете перечислить в произвольном порядке.

Ограничения

Ограничение времени

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

Теги

Нужно войти, чтобы отправить решение.Войти