Nhỏ nhất

Xem dạng PDF

Gửi bài giải

Điểm: 20,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, Kotlin, Pascal, PyPy, Python, Scratch

Một công ty có ~n~ sản phẩm, sản phẩm thứ i có chất lượng là ~a_i~ (~1\le a_i \le 10^6~). Mỗi ngày công ty phải giao đúng ~k~ sản phẩm nếu số sản phẩm của công ty nhiều hơn hoặc bằng ~k~, ngược lại phải giao hết số sản phẩm theo nguyên tắc:

  • Ở ngày đầu tiên chất lượng sản phẩm được giao không nhỏ hơn 1.
  • Ở ngày thứ hai chất lượng sản phẩm được giao không nhỏ hơn 2.
  • Ở ngày thứ ba chất lượng sản phẩm được giao không nhỏ hơn 3. ………
  • Ở ngày thứ i chất lượng sản phẩm được giao không nhỏ hơn i. ………
    Quá trình giao hàng sẽ dừng lại khi đã giao hết hàng, hoặc không thể giao được nữa. Do có chiến lược giao hàng tối ưu, nên công ty đã giao hết số sản phẩm.

Yêu cầu: Hãy tìm giá trị nhỏ nhất của ~k~.

Dữ liệu vào:

  • Dòng đầu: Số nguyên dương ~n~ (~n < 10^6~)
  • Dòng hai: Dãy số nguyên dương ~a_1, a_2, a_3,…, a_n~ (~a_i < 10^6~, ~1 \le i \le n~)

Dữ liệu ra:

  • Một số nguyên duy nhất theo yêu cầu.

Ví dụ:

Input

7
3 1 4 2 3 4 4

Output

2

Giải thích:

  • Nếu mỗi ngày công ty giao 1 sản phẩm thì còn lại ít nhất 3 sản phẩm. Chẳng hạn ngày đầu giao sản phẩm có chất lượng 1, ngày thứ hai giao sản phẩm có chất lượng là 2, ngày thứ ba giao sản phẩm có chất lượng là 3, ngày thứ tư giao sản phẩm có chất lượng là 4. Như vậy còn 3 sản phẩm không được giao là 3, 4, 4.
  • Nếu mỗi ngày công ty giao 2 sản phẩm và do công ty có chiến lược hợp lí nên đã giao hết hàng, chẳng hạn: ngày đầu giao sản phẩm có chất lượng 1 và 2, ngày thứ hai giao 2 sản phẩm có chất lượng là 3, ngày thứ 3 giao 2 sản phẩm có chất lượng là 4, ngày thứ tư giao sản phẩm còn lại có chất lượng 4.

Giới hạn dữ liệu:

  • 60% bộ test có ~n <10^3~;
  • 40% bộ test không giới hạn gì thêm.

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.