C++ bài 8.D2: Leo cầu thang


Submit solution

Points: 25 (partial)
Time limit: 1.0s
Memory limit: 20M

Author:
Problem type

Có một cầu thang với \(N\) bậc. Hiện tại, Quân đang đứng tại chân cầu thang, tức là bậc \(0\). Anh ấy có thể leo lên một hoặc hai bậc một lần.

Tuy nhiên, các bậc thang thứ \(a_1\), \(a_2\), \(a_3\), ..., \(a_M\) bị hỏng, vì vậy rất nguy hiểm nếu đặt chân lên những bậc đó.

Hãy tìm số cách để leo lên đến bậc thang cuối cùng, tức là bậc \(N\), mà không đặt chân lên các bậc thang bị hỏng. Kết quả lấy theo modulo \(1000000007\).

Ràng buộc:

  • \(1 \leq N \leq 10^5\)
  • \(0 \leq M \leq N-1\)
  • \(1 \leq a_1 < a_2 < ... < a_M \leq N-1\)

ĐỊNH DẠNG ĐẦU VÀO

Đầu vào được cung cấp từ đầu vào chuẩn như sau:

N M
a_1 a_2 ... a_M

ĐỊNH DẠNG ĐẦU RA

In ra số cách leo lên cầu thang theo điều kiện đã cho, lấy theo modulo \(1000000007\).

Ví dụ:

Input
6 1
3
Output
4

Có bốn cách để leo lên cầu thang như sau:

  • \(0 \rightarrow 1 \rightarrow 2 \rightarrow 4 \rightarrow 5 \rightarrow 6\)
  • \(0 \rightarrow 1 \rightarrow 2 \rightarrow 4 \rightarrow 6\)
  • \(0 \rightarrow 2 \rightarrow 4 \rightarrow 5 \rightarrow 6\)
  • \(0 \rightarrow 2 \rightarrow 4 \rightarrow 6\)
Input
10 2
4 5
Output
0

Có thể không có cách nào để leo lên cầu thang mà không đặt chân lên các bậc bị hỏng.

Giải thích ví dụ mẫu:

  • Ví dụ 1: Có 4 cách để leo lên cầu thang khi bậc 3 bị hỏng.

  • Ví dụ 2: Không có cách nào để leo lên cầu thang khi các bậc 4 và 5 bị hỏng.


Lời giải bài tập này: Tại đây

Group giải đáp thắc mắc: Lập trình 24h

Fanpage CLB: CLB lập trình Full House- Việt Nam

Youtube: CLB Lập Trình Full House


Comments

There are no comments at the moment.