-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy path1.5.Step16.cpp
More file actions
39 lines (36 loc) · 1.59 KB
/
1.5.Step16.cpp
File metadata and controls
39 lines (36 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*
1.5 Цикл while. Шаг 16
Определите наименьшее расстояние между двумя локальными максимумами последовательности натуральных чисел,
завершающейся числом 0. Если в последовательности нет двух локальных максимумов, выведите число 0.
Начальное и конечное значение при этом локальными максимумами не считаются.
Расстоянием считается количество пробелов между элементами.
В качестве примера смотрите первый тест.
Формат входных данных:
Вводится последовательность целых чисел, оканчивающаяся числом 0
(само число 0 в последовательность не входит, а служит как признак ее окончания).
Формат выходных данных:
Выведите ответ на задачу.
Sample Input 1: 1 2 1 1 2 1 2 1 0
Sample Output 1: 2
Sample Input 2: 1 2 3 0
Sample Output 2: 0
*/
#include <iostream>
int main() {
while (true) {
int a, b, n, i, pos, min;
a = b = i = pos = min = 0;
while (std::cin >> n && n) {
i++;
if (a > 0 && a < b && b > n) {
if (min > (i - pos) || (min == 0 && pos > 0))
min = i - pos;
pos = i;
}
a = b;
b = n;
}
std::cout << min;
}
return 0;
}