#751. Ghi nhớ từ vựng (WORD)

Bộ nhớ: 512 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Lweb đối mặt với hàng núi từ vựng tiếng Anh và chìm trong suy tư: "Làm sao mình có thể học hết nhanh để còn đi chơi Tam Quốc Sát nhỉ?". Lúc này, thầy Phượng thông thái từ xa bay tới, đưa cho Lweb một cuốn sổ kế hoạch và một hũ lớn ớt ngâm. Thầy Phượng bảo Lweb: "Thầy biết tổng cộng có n từ vựng em cần học. Bây giờ chúng ta sẽ điền vào bảng kế hoạch từ trên xuống dưới. Đối với một từ có số thứ tự là x (các số thứ tự 1 \ldots x-1 đã được điền vào bảng):

  1. Nếu tồn tại một từ là hậu tố (suffix) của từ hiện tại nhưng chưa được điền vào bảng, em sẽ phải ăn n \times n quả ớt mới học được từ này.
  2. Khi tất cả các hậu tố của nó đã được điền vào bảng:
    • Nếu trong các vị trí 1 \ldots x - 1 không có từ nào là hậu tố của từ hiện tại, em tốn x quả ớt để nhớ nó.
    • Nếu trong các vị trí 1 \ldots x - 1 có tồn tại các từ là hậu tố của từ hiện tại, gọi y là số thứ tự lớn nhất trong số các từ hậu tố đó, em chỉ cần ăn x - y quả ớt để nhớ nó."

Lweb là một đứa trẻ kỳ lạ, ăn đồ cay sẽ bị mất kiểm soát, vì vậy hãy giúp Lweb tìm ra một phương án điền từ tối ưu sao cho cậu ấy học thuộc hết n từ mà phải ăn ít ớt nhất.

Dữ liệu:

  • Nhập một số nguyên n , biểu thị số lượng từ vựng Lweb cần học.
  • Tiếp theo là n dòng, mỗi dòng chứa một từ (cấu tạo từ các chữ cái thường, đảm bảo hai từ bất kỳ đều khác nhau).

Kết quả:

  • Số lượng ớt ít nhất mà Lweb phải ăn.

Ví dụ:

Dữ liệu:

2
a
ba

Kết quả:

2

Giới hạn: 1 \leq n \leq 100000 . Tổng độ dài tất cả các từ 1 \leq |\text{len}| \leq 510000 .