MỞ CỬA KHO BÁU

Trong trò chơi GarenaPro, game thủ muốn vào được kho báu thì phải tìm ra được chìa khóa từ các mật mã tìm thấy trên đường đi đến kho báu. Biết rằng các mật mã tìm thấy từ một dãy số \(A\) gồm \(n\) phần tử nguyên \(a_{1},\ a_{2},\ \ldots,\ a_{n}\) và một số nguyên \(s\) xuất hiện tại cửa của kho báu.

Mỗi lần game thủ chọn 1 dãy con gồm các phần tử bất kì trong dãy số \(a\) mà tổng các phần tử được chọn đúng bằng \(s\) thì cánh cửa kho báu được rung lên. Tuy nhiên, cánh cửa kho báu chỉ được mở ra khi game thủ tìm thấy tất cả các dãy con của dãy số \(a\) có tổng bằng \(s\). Hai dãy con gọi là khác nhau nếu chúng khác nhau ít nhất 1 phần tử.

Yêu cầu: Đếm số lượng dãy con của dãy số \(a\) thỏa mãn tổng các phần tử của mỗi dãy con bằng \(s\)?

Dữ liệu vào:

+ Dòng 1 ghi 2 số nguyên dương \(n,\ s\ (1\ \leq \ n\ \leq \ 10^{6}\ ;\ 1\ \leq \ s\ \leq \ 10^{9})\);

+ Dòng 2 ghi \(n\) phần tử của dãy số \(a\ (0\ \leq a_{i} \leq 10^{9})\).

Kết quả ra:

+ Ghi ra một số duy nhất là kết quả của bài toán chia lấy dư cho 998244353.

Ví dụ:

Input Output
5 3
1 3 2 1 1
5

Giới hạn:

- Subtask 1: tương ứng 60% số điểm với \(n \leq 20;\ s \leq 10^{9};{0\ \leq a}_{i} \leq 10^{9}\) với \(i = 1..n\);

- Subtask 2: tương ứng 20% số điểm với \(n \times s \leq {5 \times 10}^{7};{0\ \leq a}_{i} \leq 10^{9}\) với \(i = 1..n\);

- Subtask 3: tương ứng 20% số điểm với \(n\ \leq \ 40;\ s \leq 10^{9};{0\ \leq a}_{i} \leq 10^{9}\) với \(i = 1..n\).

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. npk1605 (5/10)
  2. hungeazy08 (4/26)
  3. tung (2/5)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]