Локальные максимумы отзывов по версиям

тема: Временные ряды и окна · уровень: средний

Условие

Для мобильного приложения сохранены сведения о версиях в файле data.csv и отзывы пользователей в файле reviews.csv. Каждый отзыв относится к одной версии приложения.

Для выбранной платформы рассматриваются версии этой платформы в порядке возрастания идентификатора версии. Для каждой версии вычисляется число отзывов с оценкой не меньше заданного порога.

Пусть полученный ряд чисел равен c_1, c_2, ..., c_k. Внутренняя позиция i называется локальным максимумом, если c_i > c_(i-1) и c_i > c_(i+1). Первая и последняя версии ряда локальными максимумами не считаются.

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

Необходимо вывести количество локальных максимумов. Ответ является целым числом, дробная часть не используется.

Формат ввода

В каталоге с программой находится файл data.csv в кодировке UTF-8 с разделителем запятая. Первая строка файла содержит заголовок. Файл имеет столбцы:

Также в каталоге с программой находится файл reviews.csv в кодировке UTF-8 с разделителем запятая. Первая строка файла содержит заголовок. Файл имеет столбцы:

В стандартный ввод подаются две строки:

Формат вывода

Выведите одно целое число — количество локальных максимумов в ряду количеств подходящих отзывов по версиям выбранной платформы.

Ограничения

В файле data.csv содержится от 300 до 2000 строк данных. Идентификаторы version_id различны и лежат в диапазоне от 1 до 2000. Значение release_day лежит в диапазоне от 1 до 10000. Длина значения platform составляет от 3 до 7 символов.

В файле reviews.csv содержится от 300 до 2000 строк данных. Идентификаторы review_id различны и лежат в диапазоне от 1 до 100000. Каждый version_id из файла reviews.csv существует в файле data.csv. Значение review_day лежит в диапазоне от 1 до 10000, значение rating — от 1 до 5.

Во входе platform имеет одно из значений android, ios, web. Значение min_rating лежит в диапазоне от 1 до 5. Для каждой платформы в файле есть не менее 100 версий. Версия без подходящих отзывов получает значение ряда, равное 0.

Решить задачу с автопроверкой на Python →

Куда дальше