5283. Оттепель

 

Уставшие от необычно теплой зимы жители Судиславля решили узнать, действительно ли это самая длинная оттепель за всю историю наблюдений за погодой. Они обратились к синоптикам, а те, в свою очередь, занялись исследованиями статистики за прошлые годы. Их интересует, сколько дней длилась самая длинная оттепель.

Оттепелью они называют период, в который среднесуточная температура ежедневно превышала 0 градусов Цельсия. Напишите программу, помогающую синоптикам в работе.

 

Вход. Первая строка содержит количество рассматриваемых дней n (1 ≤ n ≤ 1000). Следующая строка содержит n целых чисел – среднесуточную температуру в соответствующий день. Температуры – целые числа в диапазоне от -50 до 50.

 

Выход. Вывести одно число – длину самой продолжительной оттепели, то есть наибольшее количество последовательных дней, на протяжении которых среднесуточная температура превышала 0 градусов. Если температура в каждый из дней была неположительной, выведите 0.

 

Пример входа

Пример выхода

6

-20 30 0 50 10 -10

2

 

 

РЕШЕНИЕ

массивы

 

Анализ алгоритма

В переменной res вычисляем длину самой продолжительной оттепели.

В переменной temp вычисляем длину текущей оттепели (количество последовательных дней с положительной температурой).

Производим измерение температуры в каждый день. Если она положительна, то увеличиваем длину текущей оттепели temp на 1. Иначе сбрасываем ее значение в 0. Среди всех возможных значений temp ищем максимум в переменной res.

 

Пример

Рассмотрим пример.

 

Реализация алгоритма

Читаем количество дней n.

 

scanf("%d", &n);

 

В переменной res вычисляем длину самой продолжительной оттепели.

В переменной temp вычисляем длину текущей оттепели (количество дней с положительной температурой).

 

temp = res = 0;

 

Обрабатываем температуры n дней.

 

for (i = 0; i < n; i++)

{

  scanf("%d", &cur);

 

Если cur > 0, то увеличиваем длину текущей оттепели на 1.Иначе сбрасываем ее значение в 0.

 

  if (cur > 0) temp++; else temp = 0;

 

Среди всех длин текущей оттепели находим максимум.

 

  if (temp > res) res = temp;

}

 

Выводим ответ.

 

printf("%d\n", res);