JOI 2007 - The Longest Sequence
Xem PDFCó \(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\) và \(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\).
- Nhóm 1 (\(8\) điểm, \(40\%\)): \(1 \le n \le 1\,000\), \(1 \le k \le \min(n,500)\).
- Nhóm 2 (\(4\) điểm, \(20\%\)): \(1 \le n \le 60\,000\), \(1 \le k \le \min(n,50\,000)\).
- 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\).
Kỳ thi:
- JOI 2006/2007 - Vòng chung kết (12 Tháng 2., 2007)
Bình luận