Chữ tượng hình Berland
Đề bài
Mô tả
Polycarpus có hai bức tranh cổ, mỗi bức vẽ một vòng tròn gồm các chữ tượng hình. Trong mỗi vòng tròn, không có chữ tượng hình nào xuất hiện quá một lần (nhưng một chữ có thể xuất hiện ở cả hai vòng).
Để lưu vào máy tính, Polycarpus phải cắt mỗi vòng tròn tại một vị trí nào đó rồi viết các chữ tượng hình thành một hàng theo chiều kim đồng hồ. Hàng thu được từ vòng thứ nhất gọi là xâu , từ vòng thứ hai gọi là xâu .
Có nhiều cách cắt mỗi vòng tròn. Polycarpus muốn chọn cách cắt cả hai vòng sao cho độ dài lớn nhất của một xâu con liên tiếp (substring) của đồng thời là dãy con (subsequence) của đạt giá trị lớn nhất có thể.
Hãy giúp Polycarpus tìm độ dài lớn nhất đó. Mỗi chữ tượng hình được biểu diễn bằng một số nguyên từ đến .
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và : số chữ tượng hình trên vòng tròn thứ nhất và thứ hai.
- Dòng thứ hai chứa số nguyên: các chữ tượng hình trên vòng thứ nhất, theo chiều kim đồng hồ, bắt đầu từ một chữ bất kỳ.
- Dòng thứ ba chứa số nguyên: các chữ tượng hình trên vòng thứ hai, theo chiều kim đồng hồ, bắt đầu từ một chữ bất kỳ.
Dữ liệu ra
In ra một số nguyên duy nhất: độ dài lớn nhất của xâu con liên tiếp của là dãy con của khi cắt hai vòng tròn một cách tối ưu. Nếu không tồn tại xâu con nào như vậy với mọi cách cắt, in ra .
Ràng buộc
- Mỗi chữ tượng hình là một số nguyên trong đoạn
- Trong mỗi vòng tròn, các chữ tượng hình đôi một khác nhau
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 3 1 2 3 3 2 1 |
2 | Cắt vòng thứ nhất thành và vòng thứ hai thành : xâu con của là dãy con của . |
| 5 4 1 2 3 4 5 1 3 5 6 |
2 | Cắt vòng thứ nhất thành (xâu con dùng cả hai phía của điểm cắt gốc) và : là dãy con của . |
| 4 6 1 3 5 2 1 2 3 4 5 6 |
3 | Xâu con của là dãy con của . |
Bình luận