BASIC - Đoạn cơ sở
Dữ liệu vào: Standard input
Dữ liệu ra: Standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: Ngapt

Con đường cao tốc mới hoàn thành được chia thành n đoạn, mỗi đoạn do một trong số 26 công ty đảm nhiệm việc lát asfalt mặt đường, có loại chống trơn trượt, loại chống nước bắn, loại trơ với hóa chất rửa đường v.v… Mỗi công ty chỉ sử dụng một loại asphalt. Các asphalt được ký hiệu bằng một trong số các chữ cái la tinh thường.  


Việc phân chia công ty nào thi công lát đoạn đường nào là công việc khá khó khăn và tế nhị vì liên quan tới điều hòa quan hệ giữa đơn vị chủ quản với các công ty. Để đơn giản hóa công tác đấu thầu người ta lấy m đoạn đầu tiên, tổ chức đấu thầu, các đoạn gồm m phần tiếp sau đó cũng sẽ do các công ty đã trúng thầu đảm nhiệm với số lượng in hệt như số đoạn họ đã giành được ở đoạn đầu tiên, tuy vậy trình tự loại asphalt có thể thay đổi theo đặc thù của địa hình. Như vậy, ở mỗi khoảng gồm m đoạn đường tiếp theo nếu ta thay đổi vị trí các đoạn đường trong đó ta có thể có khoảng giống hệt khoảng m đoạn đường đầu tiên. Dĩ nhiên m được chọn sao cho khoảng cuối cùng cũng phải có đúng m đoạn. 

Khoảng m đoạn đường đầu tiên được gọi là đoạn cơ sở. Hồ sơ kỹ thuật xác định cách lát đường
được ghi nhận dưới dạng xâu s độ dài n chỉ chứa các ký tự la tinh thường. 

Hãy xác định xâu tương ứng với đoạn cơ sở ngắn nhất có thể. 

Dữ liệu: Vào từ file văn bản BASIC.INP gồm một dòng chứa xâu s độ dài không quá 100000.
Kết quả: Đưa ra file văn bản BASIC.OUT đưa ra xâu tương ứng với đoạn cơ sở ngắn nhất hoặc
số -1 nếu toàn thể con đường là đoạn cơ sở ngắn nhất.

Ví dụ

Inp:

bbabab 

Out:

bba

Hint: Tổng tiền tố + bảng băm

Back to Top