[HSG_NB_24] Dãy số

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (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++, Java, Pascal, Python

Cho dãy gồm ~n~ số tự nhiên ~a_1, a_2, a_3, ..., a_n~, các số ~a_i~ ~(1 \le i \le n)~ không quá ~m~ và có giá trị đôi một khác nhau, trong đó có đúng một số có giá trị bằng ~0~.

Yêu cầu

Thay thế số ~0~ thành một giá trị bất kì không được trùng với các giá trị đã có để nhận được một dãy con (các phần tử không nhất thiết nằm liên tiếp) có các giá trị liên tiếp dài nhất có thể.

Dữ liệu đầu vào

Gồm hai dòng:

  • Dòng đầu ghi hai số nguyên ~m, n~ ~(1 \le n < m \le 10^6)~.
  • Dòng thứ hai chứa ~n~ số tự nhiên đôi một khác nhau không lớn hơn ~m~.

Dữ liệu đầu ra

Gồm một số nguyên duy nhất là độ dài của dãy con có giá trị liên tiếp dài nhất có thể đạt được sau khi thay đổi giá trị của số ~0~.

Ràng buộc dữ liệu

  • 40% số test ứng với 40% số điểm có: ~1 \le n \le 100~.
  • 30% số test ứng với 30% số điểm có: ~100 < n \le 1000~.
  • 30% số test ứng với 30% số điểm có: ~1000 < n \le 10^6~.

Ví dụ

Ví dụ 1
INPUT
8 5
8 2 0 5 7
OUTPUT
4

Giải thích: Ta có thể gán giá trị ~6~ cho phần tử có giá trị ~0~, khi đó dãy trở thành ~8, 2, 6, 5, 7~. Dễ thấy dãy con ~8, 6, 5, 7~ có các phần tử có giá trị liên tiếp nhau là ~5, 6, 7, 8~ và có độ dài ~4~ là dài nhất.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.