Đăng ký kênh truyền hình
Đề bài
Mô tả
Đài truyền hình BerTV mỗi ngày phát đúng một tập của một trong chương trình. Bạn biết trước lịch phát sóng của ngày sắp tới: dãy số nguyên , trong đó là chương trình được phát vào ngày thứ .
Gói đăng ký được bán theo từng chương trình: mua một chương trình nghĩa là xem được mọi tập của chương trình đó, và mỗi chương trình phải mua riêng.
Bạn muốn xem truyền hình liên tục ngày. Hãy tìm số chương trình ít nhất cần đăng ký sao cho tồn tại một đoạn ngày liên tiếp mà mọi tập phát trong đoạn đó đều thuộc các chương trình đã mua. Được phép xem nhiều hơn ngày liên tiếp, miễn là có ít nhất một đoạn ngày thoả mãn.
Dữ liệu vào
- Dòng đầu chứa số nguyên là số bộ dữ liệu.
- Mỗi bộ dữ liệu gồm hai dòng:
- Dòng thứ nhất chứa ba số nguyên , , .
- Dòng thứ hai chứa số nguyên .
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra trên một dòng số chương trình ít nhất cần đăng ký.
Ràng buộc
- Tổng trên tất cả các bộ dữ liệu không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 5 2 2 1 2 1 2 1 9 3 3 3 3 3 2 2 2 1 1 1 4 10 4 10 8 6 4 16 9 8 3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 |
2 1 4 5 |
Bộ 1: mọi đoạn ngày đều gồm một tập của chương trình và một tập của chương trình , nên phải mua cả hai. Bộ 2: đoạn ngày đầu chỉ phát chương trình , mua một chương trình là đủ. Bộ 3: đoạn ngày duy nhất có chương trình khác nhau. Bộ 4: mua các chương trình thì xem được ngày cuối. |
| 3 6 3 3 1 1 2 3 3 3 4 4 1 4 3 2 1 5 2 5 1 2 1 2 1 |
1 1 2 |
Bộ 1: ba ngày cuối đều phát chương trình . Bộ 2: nên chỉ cần mua chương trình phát trong đúng một ngày nào đó. Bộ 3: nên buộc phải phủ toàn bộ lịch, gồm hai chương trình khác nhau. |
Bình luận