Задание 17. Информатика. ЕГЭ. Поляков-4273
- Просмотры: 169
- Изменено: 24 ноября 2024
(В. Шубинкин) В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от \(-10~000\) до \(10~000\) включительно. Определите и запишите в ответе сначала количество локальных максимумов в этой последовательности, затем наименьшее расстояние между двумя локальными максимумами. Под локальным максимумом подразумевается элемент последовательности, больший двух соседних элементов. Под расстоянием между элементами последовательности в данной задаче подразумевается разность номеров позиций этих элементов. Гарантируется наличие хотя бы двух локальных максимумов. Например, в последовательности \(10; \, 4; \, 7; \, -2; \, -10; \, 12; \, 3; \, 5; \, -2\) три локальных максимума \((7, \, 12\) и \(5)\), поэтому правильным ответом для данного примера будет пара чисел \(3\) и \(2\).
Решение:
C++
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
int32_t main() {
ifstream in("17-1.txt");
vector<int> v;
int min_dist = 100000, prev_pos = -100000, loc_max = 0;
while(!in.eof()) {
int tmp;
in >> tmp;
v.push_back(tmp);
}
for(int i = 1; i < v.size() - 1; i++)
if (v[i] > v[i-1] && v[i] > v[i+1]) {
loc_max++;
min_dist = min(i - prev_pos, min_dist);
prev_pos = i;
}
cout << loc_max << " " << min_dist << '\n';
}
Ответ: \(3316 \,\, 2\)