Điểm:
1
Thời gian:
1.0s
Bộ nhớ:
512M
Input:
bàn phím
Output:
màn hình
Lại tiếp tục cho một dãy gồm \(n+1\) ô xếp liên tiếp nhau từ ô \(0\) tới ô \(n\); trong đó có \(k\) ô \(A_1, A_2, \dots, A_k\) ta không thể bước chân vào (ô bị chặn).
Bạn ban đầu đứng ở ô \(0\), và bạn phải tìm cách di chuyển tới ô \(n\) bằng cách nhảy 1 ô hoặc nhảy 2 ô.
Cụ thể, nếu bạn đang ở ô \(i\), thì bạn có thể nhảy sang một trong hai ô \(i+1\) hoặc \(i+2\), miễn là nơi bạn nhảy tới không phải là ô bị chặn và vẫn chưa nằm ngoài \(n+1\) ô.
Hãy đếm số cách di chuyển từ ô \(0\) tới ô \(n\).
Dữ liệu đầu vào
- Dòng thứ nhất chứa hai số lần lượt là \(n\) và \(k\) \((0 \leq k \leq n \leq 10^5)\).
- Dòng thứ hai chứa \(k\) số \(A_1, A_2, \dots, A_k\) \((1 \leq A_i \leq n)\).
Định dạng đầu ra
- In ra một số duy nhất là số lượng cách nhảy từ ô \(0\) tới ô \(n\), chia lấy dư cho \(998244353\).
Điểm số
- Subtask \(1\) (\(30\%\) số điểm): \(n \leq 20\)
- Subtask \(2\) (\(25\%\) số điểm): \(k = 0\)
- Subtask \(3\) (\(45\%\) số điểm): không có giới hạn nào khác.
Ví dụ
Ví dụ 1
Đầu vào
7 2
1 6
Đầu ra
3
Giải thích
Có ba cách di chuyển:
- \(0 \rightarrow 2 \rightarrow 3 \rightarrow 4 \rightarrow 5 \rightarrow 7\)
- \(0 \rightarrow 2 \rightarrow 3 \rightarrow 5 \rightarrow 7\)
- \(0 \rightarrow 2 \rightarrow 4 \rightarrow 5 \rightarrow 7\)
Bình luận