SỐ ĐOẠN CON

Cho một dãy gồm \(n\) số nguyên dương \(a_{1},a_{2},...,a_{n}\)và hai số nguyên dương \(m,M\). Mỗi dãy \(a_{i},a_{i + 1},a_{i + 2},...,a_{j}\) với \(1 \leq i \leq j \leq n\) được gọi là dãy con liên tiếp của dãy đã cho.

Yêu cầu: Hãy lập trình đế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 \(m\) và nhỏ hơn hoặc bằng \(M\).

Dữ liệu vào:

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

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

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 \(m\) và nhỏ hơn hoặc bằng \(M\).

Ví dụ:

sub.inp sub.out
6 5 10
3 2 4 2 1 2
9
10 20 30
3 2 4 2 1 2 9 12 3 7
12
1 1 2
1
1

Giải thích:

  • Test 1: 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.

Ràng buộc:

  • \(\frac{2}{5}\) số test của bài thỏa mãn: \(1 < n \leq 100,M \leq 10^{9};\)

  • \(\frac{2}{5}\) số test khác của bài thỏa mãn: \(100 < n \leq 5000,M \leq 10^{9};\)

  • \(\frac{1}{5}\) số test còn lại của bài thỏa mãn: \(5000 < n \leq 100000,M \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/63)
  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: 38904

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