Gửi bài giải

Điểm: 100,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Python
Dãy con
Mô tả và yêu cầu

Mỗi dãy con được gọi là dãy con liên tiếp nếu dãy con đó có dạng 𝑎𝑖, 𝑎𝑖+1, 𝑎𝑖+2, … ,𝑎𝑗
với 1 ≤ 𝑖 ≤ 𝑗 ≤ 𝑛, 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 𝑎1, 𝑎2, … ,𝑎𝑛 và hai số nguyên dương 𝑝, 𝑞. 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 𝑝 và
nhỏ hơn hoặc bằng 𝑞.
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: Cho từ thiết bị nhập chuẩn gồm hai dòng:
 Dòng đầu ghi ba số nguyên 𝑛, 𝑝, 𝑞 (1 ≤ 𝑛 ≤ 105; 1 ≤ 𝑝, 𝑞 ≤ 1018, 𝑝 < 𝑞);
 Dòng thứ hai ghi n số nguyên 𝑎1, 𝑎2, … ,𝑎𝑛 (1 ≤ 𝑎𝑖 ≤ 1000, 𝑖 = 1, 2, … ,𝑛);
Kết quả ra: Ghi ra thiết bị xuất chuẩn gồm 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 𝑝 và nhỏ hơn hoặc bằng 𝑞.

Ví dụ
INPUT                        OUTPUT                               Giải thích
    1 1 2                             1                           Từ test ví dụ 2: Ta có các dãy con
    1                                                             thỏa mãn là: (3, 2); (2, 4); (4, 2);
    6 5 10                            9                           (3, 2, 4); (2, 4, 2); (4, 2, 1); (2, 1,
    3 2 4 2 1 2                                                   2); (2, 4, 2, 1); (4, 2, 1, 2).
    12 20 35                          19                          Vậy kết quả 9 dãy con.
    5 4 6 4 3 4 11 2 14 5 9 3
Ràng buộc:
       Có 40% số test tương ứng 40% số điểm có  1             <  𝑛  ≤  100,  𝑞  ≤  109;
       Có 40% số test tương ứng 40% số điểm có 100               <  𝑛 ≤   5000,  𝑞  ≤  109;
Có 20% số test tương ứng 20% số điểm thỏa 5000               <  𝑛  ≤  105, 𝑞  ≤  1018;

Tải PDF gốc


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.