BOI 2014 - 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: 2400 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Adam viết lên bảng một dãy gồm \(K\) số nguyên dương liên tiếp, bắt đầu từ \(N\). Khi Adam rời đi, Billy xóa các chữ số của mỗi số, chỉ giữ lại đúng một chữ số. Như vậy, Billy tạo ra một dãy gồm \(K\) chữ số.

Cho dãy chữ số còn lại trên bảng, hãy tìm giá trị nhỏ nhất của \(N\) có thể là số đầu tiên trong dãy ban đầu.

Dữ liệu vào

Dòng đầu chứa số nguyên \(K\), độ dài của dãy.

Dòng thứ hai chứa \(K\) số nguyên \(B_1, B_2, \ldots, B_K\) theo thứ tự trên bảng. Chữ số \(B_i\) phải xuất hiện trong cách viết thập phân của số \(N+i-1\).

Dữ liệu ra

In ra một số nguyên: giá trị nhỏ nhất của \(N\) có thể là số đầu tiên trong dãy ban đầu.

Ràng buộc

  • \(1 \le K \le 100\,000\).
  • \(0 \le B_i \le 9\) với mọi \(1 \le i \le K\).
  • \(N\) là số nguyên dương.

Phân nhóm

  1. 9 điểm: \(1 \le K \le 1000\) và đáp án không vượt quá \(1000\).
  2. 33 điểm: \(1 \le K \le 1000\).
  3. 25 điểm: \(1 \le K \le 100\,000\) và tất cả phần tử của dãy đã cho bằng nhau.
  4. 33 điểm: \(1 \le K \le 100\,000\).

Ví dụ

Ví dụ 1

Input
6
7 8 9 5 1 2
Output
47
Giải thích

Với \(N=47\), dãy của Adam là \(47,48,49,50,51,52\). Từ mỗi số, Billy có thể giữ lại lần lượt các chữ số \(7,8,9,5,1,2\). Không có giá trị \(N\) nhỏ hơn nào thỏa mãn, nên đáp án là \(47\).

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: