JOI 2007 - The Longest Sequence

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1200 (p) Thời gian: 5.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

\(n\) thẻ mang các số nguyên từ \(1\) đến \(n\), mỗi số xuất hiện trên đúng một thẻ, và một thẻ trắng. Bạn được cho \(k\) thẻ trong số \(n+1\) thẻ này, với \(1 \le k \le n\).

Nếu nhận được thẻ trắng, bạn có thể viết lên đó một số nguyên từ \(1\) đến \(n\). Bạn muốn chọn và sắp xếp các thẻ được cho để tạo thành một dãy số nguyên liên tiếp dài nhất có thể.

Yêu cầu

Tính độ dài lớn nhất của một dãy số nguyên liên tiếp có thể tạo ra chỉ bằng các thẻ được cho.

Dữ liệu vào

Đọc từ đầu vào chuẩn:

  • Dòng đầu tiên chứa hai số nguyên \(n\)\(k\), cách nhau bởi một dấu cách.
  • Mỗi dòng trong \(k\) dòng tiếp theo chứa một số nguyên biểu diễn một thẻ được cho. Số \(0\) biểu diễn thẻ trắng; số khác \(0\) là số viết trên thẻ.

Dữ liệu ra

Ghi ra đầu ra chuẩn một dòng chứa một số nguyên duy nhất là độ dài lớn nhất tìm được.

Ràng buộc

  • \(1 \le n \le 100\,000\).
  • \(1 \le k \le n\).
  • Mỗi giá trị biểu diễn thẻ nằm trong đoạn từ \(0\) đến \(n\).
  • Các thẻ được cho là những thẻ khác nhau: mỗi số từ \(1\) đến \(n\) xuất hiện nhiều nhất một lần và có nhiều nhất một thẻ trắng.

Phân nhóm

Bài có tổng cộng \(20\) điểm, gồm \(5\) test, mỗi test \(4\) điểm. Có \(40\%\) số điểm ứng với \(n \le 1\,000\), \(k \le 500\) và tổng cộng \(60\%\) số điểm ứng với \(n \le 60\,000\), \(k \le 50\,000\).

  1. Nhóm 1 (\(8\) điểm, \(40\%\)): \(1 \le n \le 1\,000\), \(1 \le k \le \min(n,500)\).
  2. Nhóm 2 (\(4\) điểm, \(20\%\)): \(1 \le n \le 60\,000\), \(1 \le k \le \min(n,50\,000)\).
  3. Nhóm 3 (\(8\) điểm, \(40\%\)): \(1 \le n \le 100\,000\), \(1 \le k \le n\).

Ví dụ

Ví dụ 1

Input
7 5
6
2
4
7
1
Output
2
Giải thích

Với \(n=7\), \(k=5\), các thẻ được cho mang các số \(6,2,4,7,1\). Một dãy liên tiếp dài nhất tạo được là \(1,2\), có độ dài \(2\).

Ví dụ 2

Input
7 5
6
2
0
4
7
Output
4
Giải thích

Các thẻ được cho mang các số \(6,2,4,7\) cùng một thẻ trắng. Viết số \(5\) lên thẻ trắng sẽ tạo được dãy \(4,5,6,7\), có độ dài \(4\).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: