Xây dựng Suffix Array

Xem dưới dạng PDF

Gửi bài giải


Điểm: 20
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

Tác giả:
Kiểu bài tập

Cho xâu \(S\). Hãy xây dựng mảng hậu tố (Suffix Array) của \(S\). Mảng hậu tố là mảng chứa các chỉ số vị trí bắt đầu của các hậu tố, được sắp xếp theo thứ tự từ điển tăng dần.

Hậu tố thứ \(i\) của xâu là xâu con từ vị trí \(i\) đến hết xâu, ký hiệu là \(S[i \ldots |S|-1]\).

Định dạng đầu vào

  • Một dòng chứa xâu \(S\) (\(1 \le |S| \le 10^5\)), chỉ gồm chữ cái in thường.

Định dạng đầu ra

  • In ra \(|S|\) số nguyên là mảng hậu tố, mỗi số cách nhau một khoảng trắng.

Ví dụ

Input:

banana

Output:

5 3 1 0 4 2

Ràng buộc

  • 50% số điểm: \(|S| \le 1000\).
  • 50% số điểm còn lại: \(|S| \le 10^5\).

Nhận xét

Không có ý kiến tại thời điểm này.