Chuỗi từ có độ dài \(n\) là một dãy các từ \(w_1, w_2, ..., w_n\) sao cho với mọi \(1 \le i \lt n\), từ \(w_i\) là tiền tố của từ \(w_{i+1}\)
Nhắc lại từ \(u\) có độ dài \(k\) là tiền tố của từ \(v\) có độ dài \(l\) nếu \(l \gt k\) và các ký tự đầu tiên của \(v\) trùng với từ \(u\).
Cho tập hợp các từ \(S=(S_1,S_2,..., S_m)\). Tìm chuỗi từ dài nhất có thể xây dựng được bằng cách dùng các từ trong tập hợp \(S\) (có thể không sử dụng hết các từ).
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên \(m\) \((1 \le m \le 250000)\). Mỗi dòng trong số \(m\) dòng sau chứa một từ trong tập \(S\).
- Biết rằng mỗi từ có độ dài không quá \(250000\) ký tự và tổng độ dài của các từ không vượt quá \(250000\) ký tự.
Dữ liệu ra
- In ra một số duy nhất là độ dài của chuỗi từ dài nhất xây dựng được từ các từ trong tập đã cho.
Input 1
3
a
ab
abc
Output 1
3
Input 2
5
a
ab
bc
bcd
add
Output 2
2
Note
Nguồn: Цикл Интернет-олимпиад для школьников, сезон 2007-2008
Nhận xét