eolymp
bolt
Try our new interface for solving problems
Məsələlər

Суффиксное дерево двух строк

Суффиксное дерево двух строк

Даны строки \textbf{s} и \textbf{t}. Постройте сжатое суффиксное дерево, которое содержит все суффиксы строки \textbf{s} и строки \textbf{t}. Найдите такое дерево, которое содержит минимальное количество вершин. \InputFile В первой строке записана строка \textbf{s} (\textbf{1} ≤ \textbf{|s|} ≤ \textbf{10^5}), последний символ строки равен "\textbf{\$}", остальные символы строки маленькие латинские буквы. Во второй строке записана строка \textbf{t} (\textbf{1} ≤ \textbf{|t|} ≤ \textbf{10^5}), последний символ строки равен "\textbf{#}", остальные символы строки маленькие латинские буквы. \OutputFile Пронумеруйте вершины дерева от \textbf{0} до \textbf{n-1} в порядке обхода в глубину, обходя поддеревья в порядке лексикографической сортировки исходящих из вершины ребер. Используйте ASCII-коды символов для определения их порядка. В первой строке выведите целое число \textbf{n} --- количество вершин дерева. В следующих \textbf{n-1} строках выведите описание вершин дерева, кроме корня, в порядке увеличения их номеров. Описание вершины дерева \textbf{v} состоит из четырех целых чисел: \textbf{p}, \textbf{w}, \textbf{lf}, \textbf{rg}, где \textbf{p} (\textbf{0} ≤ \textbf{p} < \textbf{n}, \textbf{p} ≠ \textbf{v}) --- номер родителя текущей вершины, \textbf{w} (\textbf{0} ≤ \textbf{w} ≤ \textbf{1}) --- номер строки для определения подстроки на ребре. Если \textbf{w = 0}, то на ребре, ведущем из \textbf{p} в \textbf{v}, написана подстрока \textbf{s\[lf...rg-1\]} (\textbf{0} ≤ \textbf{lf} < \textbf{rg} ≤ \textbf{|s|}). Если \textbf{w = 1}, то на ребре, ведущем из \textbf{p} в \textbf{v}, написана подстрока \textbf{t\[lf...rg-1\]} (\textbf{0} ≤ \textbf{lf} < \textbf{rg} ≤ \textbf{|t|}). \Note \textit{Подстрокой} \textbf{s\[l...r\]} (\textbf{0} ≤ \textbf{l} ≤ \textbf{r} < \textbf{|s|}) строки \textbf{s = s_0s_1...s_\{|s|-1\}} (где \textbf{|s|} --- длина строки \textbf{s}) называется строка\textbf{s_ls_\{l+1\}...s_r}.
Zaman məhdudiyyəti 1.5 saniyə
Yaddaşı istafadə məhdudiyyəti 256 MiB
Giriş verilənləri #1
ab$
ac#
Çıxış verilənləri #1
8
0 1 2 3
0 0 2 3
0 0 0 1
3 0 1 3
3 1 1 3
0 0 1 3
0 1 1 3
Giriş verilənləri #2
aba$
baab#
Çıxış verilənləri #2
14
0 1 4 5
0 0 3 4
0 0 0 1
3 0 3 4
3 1 2 5
3 0 1 2
6 1 4 5
6 0 2 4
0 0 1 2
9 1 4 5
9 0 2 3
11 0 3 4
11 1 2 5
Mənbə Winter School Kharkov 2013, Day 6 - G.Agapov and I.Fefer