Trung vị trên đoạn

Đề bài

Mô tả

Cho dãy số nguyên a1,a2,,an và một số nguyên m.

Trung vị của một dãy là phần tử nằm ở giữa dãy sau khi sắp xếp không giảm. Nếu độ dài dãy là số chẵn thì lấy phần tử bên trái trong hai phần tử ở giữa. Nói cách khác, dãy con độ dài L có trung vị là phần tử thứ L+12 sau khi sắp xếp.

Ví dụ, dãy [4,2,7,5] sau khi sắp xếp là [2,4,5,7], hai phần tử ở giữa là 45, nên trung vị là 4. Dãy [7,1,2,9,6] sau khi sắp xếp là [1,2,6,7,9], trung vị là 6.

Hãy đếm số cặp chỉ số (l,r) với 1lrn sao cho trung vị của dãy con liên tiếp al,al+1,,ar bằng đúng m.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm: độ dài dãy và giá trị trung vị cần tìm.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

In ra một số nguyên duy nhất: số cặp (l,r) thoả mãn.

Ràng buộc

  • 1n,m2·105
  • 1ai2·105

Ví dụ

Input Output Giải thích
5 4
1 4 5 60 4
8 Các cặp thoả mãn là (1,3),(1,4),(1,5),(2,2),(2,3),(2,5),(4,5),(5,5). Chẳng hạn (1,4) cho dãy [1,4,5,60], sắp xếp được [1,4,5,60], độ dài chẵn nên lấy phần tử thứ hai là 4. Cặp (4,5) cho dãy [60,4], sắp xếp được [4,60], trung vị là 4.
3 1
1 1 1
6 Mọi dãy con đều chỉ gồm các số 1 nên trung vị luôn bằng 1. Có 3·42=6 dãy con.
15 2
1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
97 Trong tổng số 120 dãy con liên tiếp, có 97 dãy có trung vị bằng 2.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0