D. Сигнал опасного сближения
Не решена
Ограничение времени 1 секунда
Ограничение памяти 256 Мб
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Ровер один раз в секунду измеряет расстояние до ближайшего препятствия. Получается последовательность
a
1
,
a
2
,
…
,
a
N
a
1
,a
2
,…,a
N
. Значение -1 означает, что датчик не смог определить расстояние.
Корректное измерение считается опасным, если оно находится в диапазоне от 0 до
D
D включительно. То есть опасными являются и значения, равные
D
D, и все меньшие неотрицательные значения. Значение -1 опасным измерением не является.
Чтобы единичная помеха не включала сигнал тревоги, для каждого момента система рассматривает окно из последних
W
W измерений. В начале наблюдения, пока получено меньше
W
W измерений, рассматриваются все уже полученные значения.
Значение -1 занимает место в окне наравне с остальными измерениями, но не увеличивает количество опасных показаний.
Моменты измерений нумеруются от 1 до
N
N. В момент
i
i сигнал опасного сближения включён, если в рассматриваемом окне находится не менее
K
K опасных измерений.
Непрерывным промежутком включённого сигнала называется последовательность соседних моментов измерений, в каждом из которых сигнал включён. Продолжительность такого промежутка равна количеству входящих в него моментов. Например, если сигнал включён в моменты 3 и 4, продолжительность промежутка равна 2 секундам.
Найдите самый длинный непрерывный промежуток включённого сигнала. Если таких промежутков несколько, выберите тот, который начался раньше.
Формат ввода
В первой строке даны четыре целых числа
N
N,
W
W,
K
K и
D
D.
Во второй строке находятся
N
N целых чисел
a
i
a
i
— результаты измерений.
Ограничения:
1
≤
N
≤
200
000
1≤N≤200000
1
≤
K
≤
W
≤
N
1≤K≤W≤N
0
≤
D
≤
1
000
000
0≤D≤1000000
−
1
≤
a
i
≤
1
000
000
−1≤a
i
≤1000000
Единственным обозначением отсутствующего измерения является значение -1. Все остальные значения корректны.
Формат вывода
Выведите два целых числа start и length — номер первого момента самого длинного промежутка включённого сигнала и количество моментов в этом промежутке.
Если сигнал не включался ни разу, выведите 0 0.
Система оценивания
Задача оценивается в 25 баллов.
Разрешено не более 5 попыток.
Решение считается правильным, если оно прошло все тесты.
За каждую учитываемую системой попытку с вердиктом Wrong Answer из максимального балла вычитается 2 балла. Попытки с другими вердиктами балльным штрафом не облагаются.
После правильного ответа задача может отображаться как «Частичное решение», если итоговый балл уменьшен из-за штрафов за предыдущие неверные ответы.
Если правильное решение не принято, участник получает 0 баллов.
Пример 1
Ввод
Вывод
10 3 2 40
60 30 20 -1 50 10 20 80 90 10
3 2
Пример 2
Ввод
Вывод
6 4 3 50
100 -1 20 80 40 90
0 0
Пример 3
Ввод
Вывод
5 4 1 100
50 -1 200 80 300
1 5
Примечания
Пример №1. Сигнал включён в моменты 3–4 и 7–8. Оба промежутка имеют длину 2, поэтому выбирается более ранний.
Пример №2. Ни в одном окне нет трёх опасных измерений.
Пример №3. В каждом рассматриваемом окне находится хотя бы одно опасное измерение.
Ответ
Язык
Python 3.13.2