Олимпиадный тренинг

Задача . E2. Медиана на подотрезках (редакция для общего случая)


Задача

Темы: сортировки *2400

Задана последовательность целых чисел \(a_1, a_2, \dots, a_n\).

Найдите количество таких пар индексов \((l, r)\) (\(1 \le l \le r \le n\)), что медиана последовательности \(a_l, a_{l+1}, \dots, a_r\) равна заданному числу \(m\).

Медианой последовательности называется значение такого элемента, который находится в середине последовательности после её сортировки по неубыванию. Если последовательность имеет чётную длину, то имеется ввиду левый из двух средних элементов.

Например, если последовательность \(a=[4, 2, 7, 5]\), то её медиана равна \(4\), так как после сортировки последовательность примет вид \([2, 4, 5, 7]\) и левый из двух средних элементов равен \(4\). Медиана последовательности \([7, 1, 2, 9, 6]\) равна \(6\), так как после сортировки \(6\) будет находится в середине последовательности.

Напишите программу, которая найдет количество пар индексов \((l, r)\) (\(1 \le l \le r \le n\)), что медиана последовательности \(a_l, a_{l+1}, \dots, a_r\) равна заданному числу \(m\).

Входные данные

В первой строке записаны целые числа \(n\) и \(m\) (\(1 \le n,m \le 2\cdot10^5\)) — длина заданного массива и ожидаемое значение медианы.

Вторая строка содержит последовательность \(a_1, a_2, \dots, a_n\) (\(1 \le a_i \le 2\cdot10^5\)).

Выходные данные

Выведите количество искомых пар индексов.

Примечание

В первом примере искомые пары индексов: \((1, 3)\), \((1, 4)\), \((1, 5)\), \((2, 2)\), \((2, 3)\), \((2, 5)\), \((4, 5)\) и \((5, 5)\),


Примеры
Входные данныеВыходные данные
1 5 4
1 4 5 60 4
8
2 3 1
1 1 1
6
3 15 2
1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
97

time 3000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
Python1
Комментарий учителя