Bài 4: Đếm dãy con (Olympic Mùa Xuân - 2026)
Xem PDF
Điểm:
1300 (p)
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
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.
Input
- Dòng đầu ghi ba số nguyên \(n, p, q\) \((1 \leq n \leq 10^5; 1 \leq p, q \leq 10^9, p < q)\)
- Dòng thứ hai ghi \(n\) số nguyên \(a_1, a_2, \ldots, a_n\) \((1 \leq a_i \leq 10^5, i = 1, 2, \ldots, n)\)
Output
- Một số nguyên duy nhất 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\).
Example
Test 1
Input
1 1 2
1
Output
1
Test 2
Input
6 5 10
3 2 4 2 1 2
Output
9
Note
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.
Test 3
Input
12 20 35
5 4 6 4 3 4 11 2 14 5 9 3
Output
19
Scoring
- Subtask 1 (60% số điểm): \(1 < n \leq 5000, q \leq 10^6\)
- Subtask 2 (40% số điểm): \(5000 < n \leq 10^5, q \leq 10^9\)
Bình luận (1)