Gửi bài giải
Điểm:
0,20 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch
Cửa hàng bày bán ~n~ cuốn sách trên kệ ~a_1,a_2,...,a_n~ với ~m~ thể loại ~1,2,3,\cdots,m~, quyển sách thứ ~i~ thuộc loại ~a_i~ (~1 \le a_i \le m~). Bạn muốn mua một đoạn liên tiếp các cuốn sách sao cho đủ cả ~m~ loại sách.
Để tiết kiệm chi phí, bạn muốn mua càng ít sách càng tốt. Hãy tìm xem đoạn ngắn nhất cần phải mua có bao nhiêu quyển sách.
Input
Dòng đầu tiên có hai số nguyên ~n~ và ~m~ ~(1\le m \le n \le 5\times10^5)~: kích thước mảng và số lượng loại sách phân biệt
Dòng thứ hai có ~n~ số nguyên ~a_1, a_2, \dots, a_n~: các giá trị của mảng.
OutputFile
In ra số nguyên duy nhất là độ dài dãy con liên tiếp ít nhất cần mua để đủ ~m~ loại cách hoặc ~-1~ nếu không thể.
SampleInput
5 3
2 1 1 3 1
SampleOutput
4
Subtask
- 60\% số test có ~ n, m \le 5000 ~
- 40\% số test còn lại không có điều kiện gì thêm
Bình luận