Trung vị (HSG 9 Hà Tĩnh 2026)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1800 (p) Thời gian: 1.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, \ldots, 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}, \ldots, a_j\) \((1 \le i \le j \le n)\), độ dài là \(k = 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:

  1. Sắp xếp các phần tử của \(b\) theo thứ tự không giảm.
  2. 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\).

Input

  • Dữ liệu vào có cấu trúc:
    • 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, \ldots, a_n\) \((a_i \le 10^6;\ 1 \le i \le n)\).

Output

  • Ghi ra một số nguyên duy nhất là kết quả của bài toán.

Example

Test 1

Input
5 2
2 1 3 4 5
Output
3
Note

Các đoạn con liên tiếp có trung vị bằng \(2\) là:
2
2 1 3
2 1 3 4

Scoring

  • 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.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.