Bài tập đêm giáng sinh
Đề bài
Mô tả
Cô Tuyết chuẩn bị một bài tập đặc biệt dành cho các bạn trong đội tuyển học sinh giỏi vào giáng sinh năm nay. Đó là một bài tập về thứ tự từ điển với đề bài như sau.
Cho một dãy số khác rỗng thỏa mãn , . Ta gọi một cách phân đoạn dãy là một cách chia dãy thành các đoạn con chứa các phần tử liên tiếp, mà mỗi phần tử đều thuộc đúng một đoạn con. Một cách phân đoạn dãy được coi là hợp lệ nếu mỗi đoạn con chỉ chứa các phần tử đôi một phân biệt.
Ví dụ, với và dãy , thì một cách phân đoạn dãy hợp lệ là chia dãy thành đoạn con lần lượt là . Một cách phân đoạn hợp lệ khác là chia dãy thành đoạn con lần lượt là .
Cả hai cách phân đoạn trên đều thỏa mãn mọi đoạn con chỉ chứa các phần tử đôi một phân biệt. Mặt khác, nếu ta chia dãy thành đoạn con lần lượt là thì sẽ không hợp lệ bởi có hai phần tử cùng bằng trong đoạn con cuối cùng. Tương tự, nếu ta chia dãy thành đoạn con lần lượt là thì cũng không hợp lệ bởi có ba phần tử cùng bằng trong đoạn con thứ hai.
Mỗi dãy có thể có nhiều cách phân đoạn dãy hợp lệ. Mỗi cách phân đoạn dãy được mã hóa bằng một dãy mã hóa phân đoạn , với là số lượng đoạn con, và là số lượng phần tử của đoạn con thứ . Chẳng hạn, với dãy ở trên, cách phân đoạn thứ nhất được mã hóa bằng dãy , cách phân đoạn thứ hai được mã hóa bằng dãy .
Cô Tuyết viết lên bảng một dãy số khác rỗng thỏa mãn , , rồi lại viết lên bảng thêm số nguyên dương và . Sau đó cô gọi một bạn lên bảng để trả lời câu hỏi sau:
"Khi liệt kê tất cả các dãy mã hóa phân đoạn của dãy rồi sắp xếp chúng theo thứ tự từ điển ngược thì dãy mã hóa phân đoạn thứ và dãy mã hóa phân đoạn thứ có độ dài tiền tố chung dài nhất là bao nhiêu?"
Nhắc lại: Một dãy mã hóa phân đoạn gọi là đi trước dãy mã hóa phân đoạn theo thứ tự từ điển ngược nếu thỏa mãn một trong hai điều kiện sau:
- và , ;
- Tồn tại sao cho , và .
Dãy số được gọi là tiền tố độ dài của dãy khi và chỉ khi và , . Lưu ý, dãy rỗng (ký hiệu là ) là tiền tố độ dài của mọi dãy số. Tiền tố chung dài nhất của hai dãy số và là dãy số có độ dài lớn nhất vừa là tiền tố của dãy vừa là tiền tố của dãy .
Nhận thấy rằng nếu chỉ đặt ra câu hỏi cho một cặp số thì bài toán chưa đủ khó, cô Tuyết quyết định thêm vào một vài tham số mới. Cô gọi bạn lần lượt lên bảng, bạn thứ sẽ nhận được số và có nhiệm vụ trả lời câu hỏi sau:
"Khi liệt kê tất cả các dãy mã hóa phân đoạn của dãy rồi sắp xếp chúng theo thứ tự từ điển ngược thì dãy mã hóa phân đoạn thứ và dãy mã hóa phân đoạn thứ có độ dài tiền tố chung dài nhất là bao nhiêu?"
Yêu cầu: Hãy giúp các bạn trả lời câu hỏi của cô Tuyết.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và lần lượt là độ dài của dãy và số lượng bạn được cô Tuyết gọi lên bảng ().
- Dòng thứ hai chứa số nguyên (, ; , ).
- Dòng thứ trong số dòng tiếp theo biểu diễn một câu hỏi với bốn số nguyên (; ). Dữ liệu bảo đảm số lượng dãy mã hóa phân đoạn của dãy không nhỏ hơn .
Các số trên cùng một dòng cách nhau bởi dấu cách.
Dữ liệu ra
Gồm dòng, trong đó dòng thứ chứa một số nguyên là độ dài tiền tố chung dài nhất của hai dãy mã hóa phân đoạn của dãy , với dãy mã hóa thứ nhất có thứ tự từ điển ngược bằng và dãy mã hóa thứ hai có thứ tự từ điển ngược bằng .
Ràng buộc
- .
- ; với mọi .
- ; ; số dãy mã hóa phân đoạn của không nhỏ hơn .
Subtasks
- Subtask 1 ( số điểm): và .
- Subtask 2 ( số điểm): , .
- Subtask 3 ( số điểm): ; và , .
- Subtask 4 ( số điểm): và .
- Subtask 5 ( số điểm): Không có ràng buộc gì thêm.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 10 2 1 2 4 3 2 1 2 8 6 8 2 5 6 7 4 10 7 6 |
2 0 |
Câu hỏi thứ nhất xét . Các dãy mã hóa theo thứ tự từ điển ngược lần lượt là . Dãy thứ là , dãy thứ là , tiền tố chung dài nhất có độ dài . Câu hỏi thứ hai xét : dãy thứ là , dãy thứ là , độ dài . |
| 3 3 1 2 1 1 3 1 3 1 3 2 3 2 3 1 1 |
0 1 1 |
Ví dụ bổ sung (không có trong đề gốc). Dãy có các dãy mã hóa . Câu hỏi thứ ba xét với các dãy mã hóa ; hai dãy đều là nên độ dài là . |
Bình luận