DÃY CON

Mỗi dãy con được gọi là dãy con liên tiếp nếu dãy con đó có dạng \(a_{i},\ a_{i + 1},\ a_{i + 2},\ \ldots,\ a_{j}\) với \(1 \leq i \leq j \leq n\), là dãy con của dãy a gồm \(n\) phân tử cho trước.

Cho một dãy gồm \(n\) số nguyên dương \(a_{1},\ a_{2},\ \ldots,\ a_{n}\) và hai số nguyên dương \(p,\ q\). Người ta muốn đếm số các dãy con liên tiếp của dãy số đã cho có tổng các số lớn hơn hoặc bằng \(p\) và nhỏ hơn hoặc bằng \(q.\)

Yêu cầu: Hãy lập trình đếm số các dãy con liên tiếp thỏa mãn điều kiện bài toán.

Dữ liệu vào:

+ Dòng đầu ghi ba số nguyên \(n,\ p,q\ \left( 1 \leq n \leq 10^{5};1 \leq p,q \leq 10^{18},p < q \right);\)

+ Dòng thứ hai ghi n số nguyên \(a_{1},\ a_{2},\ \ldots,\ a_{n}\ (1 \leq a_{i} \leq 1000,\ i = 1,\ 2,\ \ldots,n)\);

Kết quả:

+ Ghi một số nguyên là số các dãy con liên tiếp thỏa mãn có tổng các số lớn hơn hoặc bằng \(p\) và nhỏ hơn hoặc bằng \(q\).

Ví dụ:

Input Output Giải thích
1 1 2
1
1 Từ test ví dụ 2: Ta có các dãy con thỏa mãn là: (3, 2); (2, 4); (4, 2); (3, 2, 4); (2, 4, 2); (4, 2, 1); (2, 1, 2); (2, 4, 2, 1); (4, 2, 1, 2).
Vậy kết quả 9 dãy con.
6 5 10
3 2 4 2 1 2
9
12 20 35
5 4 6 4 3 4 11 2 14 5 9 3
19

Ràng buộc:

  • Có 40% số test tương ứng 40% số điểm có \(1 < n \leq 100,q \leq 10^{9}\);

  • Có 40% số test tương ứng 40% số điểm có \(100 < n \leq 5000,\ q \leq 10^{9}\);

  • Có 20% số test tương ứng 20% số điểm thỏa \(5000 < n \leq 10^{5},\ q \leq 10^{18}\);

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

hpcode.edu.vn
Code tích cực
Trong 24h
  1. trungnam (6/7)
  2. sythai (5/8)
  3. npk1605 (5/10)
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]