Trung vị
Xem PDF
Điểm:
18 (p)
Thời gian:
2.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Cho mảng \(a\) gồm \(n\) số nguyên dương \(a_1, a_2, ..., a_n\) và số nguyên dương \(M\). Một đoạn con liên tiếp của mảng \(a\) là một dãy gồm các phần tử liên tiếp có dạng: \(a_i, a_{i+1}, ..., a_j\) (\(1 \le i \le j \le n\)), độ dài là \(j - i + 1\).
Trung vị của một đoạn con liên tiếp \(b\) có độ dài \(k\) được định nghĩa như sau:
- Sắp xếp các phần tử của \(b\) theo thứ tự không giảm.
- Khi đó:
- Nếu \(k\) lẻ: Trung vị là phần tử ở vị trí \((k+1)/2\).
- Nếu \(k\) chẵn: Trung vị là phần tử ở vị trí \(k/2\).
Yêu cầu: Hãy đếm số lượng đoạn con liên tiếp của mảng \(a\) có trung vị bằng \(M\).
Dữ liệu vào
- Dòng thứ nhất chứa hai số nguyên dương \(n, M\) (\(1 \le M < n \le 10^6\)).
- Dòng thứ hai chứa \(n\) số nguyên dương \(a_1, a_2, ..., a_n\) (\(a_i \le 10^6\); \(1 \le i \le n\)).
Dữ liệu ra
- Ghi ra một số nguyên duy nhất là kết quả của bài toán.
Ràng buộc
- Có 40% số test ứng với 40% số điểm của bài thỏa mãn: \(n \le 10^2\).
- Có 30% số test khác ứng với 30% số điểm của bài thỏa mãn: \(10^2 < n \le 5 \cdot 10^3\).
- 30% số test còn lại ứng với 30% số điểm của bài không có ràng buộc gì thêm.
Ví dụ
Input
5 2
2 1 3 4 5
Output
3
Giải thích
Các đoạn con liên tiếp có trung vị bằng \(2\) là:
22 1 32 1 3 4
Bình luận