#1609. Dãy số đồng dư (MODSEQ)

Bộ nhớ: 512 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Cho một mảng A gồm n số nguyên dương. Chúng ta cần xây dựng một dãy chỉ số P = (p_1, p_2, \dots, p_b) có độ dài b , trong đó mỗi phần tử p_i là một số nguyên thỏa mãn 1 \le p_i \le n .

Từ dãy chỉ số P , ta tính giá trị tổng hợp S theo công thức trọng số cơ số 10 như sau:

S = \sum_{i=1}^{b} A[p_i] \times 10^{b-i}

(Tức là: S = A[p_1] \cdot 10^{b-1} + A[p_2] \cdot 10^{b-2} + \dots + A[p_b] \cdot 10^0 ).

Hãy đếm số lượng dãy chỉ số P thỏa mãn điều kiện: S \equiv k \pmod x . Vì kết quả có thể rất lớn, hãy in ra phần dư của nó khi chia cho 10^9 + 7 .

Dữ liệu:

  • Dòng đầu tiên chứa bốn số nguyên được phân tách bằng dấu cách: n, b, k x ( 2 \le n \le 50\,000, 1 \le b \le 10^9, 0 \le k < x \le 100, x \ge 2 ) — số lượng phần tử của mảng A , độ dài dãy chỉ số cần xây dựng, phần dư mục tiêu và số chia modulo.
  • Dòng tiếp theo chứa n số nguyên a_i ( 1 \le a_i \le 9 ) được phân tách bằng dấu cách — các phần tử của mảng A .

Kết quả:

  • In ra một số nguyên duy nhất là số lượng dãy chỉ số thỏa mãn yêu cầu bài toán, modulo 10^9 + 7 .

Ví dụ:

Dữ liệu:

12 1 5 10
3 5 6 7 8 9 5 1 1 1 1 5

Kết quả:

3

Dữ liệu:

3 2 1 2
6 2 2

Kết quả:

0

Dữ liệu:

3 2 1 2
3 1 2

Kết quả:

6

Giải thích: Trong ví dụ thứ ba: Mảng A = [3, 1, 2] . Cần xây dựng dãy độ dài b=2 . Các giá trị S có thể tạo thành từ các cặp chỉ số (p_1, p_2) là:

  • A[1], A[1] \rightarrow 33 \equiv 1 \pmod 2
  • A[1], A[2] \rightarrow 31 \equiv 1 \pmod 2
  • A[1], A[3] \rightarrow 32 \equiv 0 \pmod 2
  • A[2], A[1] \rightarrow 13 \equiv 1 \pmod 2
  • A[2], A[2] \rightarrow 11 \equiv 1 \pmod 2
  • A[2], A[3] \rightarrow 12 \equiv 0 \pmod 2
  • A[3], A[1] \rightarrow 23 \equiv 1 \pmod 2
  • A[3], A[2] \rightarrow 21 \equiv 1 \pmod 2
  • A[3], A[3] \rightarrow 22 \equiv 0 \pmod 2

Có tổng cộng 6 trường hợp S chia 2 dư 1.

Giới hạn:

  • Subtask 1 (20% số điểm): b \le 100\,000 .

  • Subtask 2 (20% số điểm): x = 10 .

  • Subtask 3 (20% số điểm): x \le 5 .

  • Subtask 4 (40% số điểm): Không có ràng buộc bổ sung.