Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите сделать программу пожалуйста С++

,el Ученик (88), на голосовании 5 месяцев назад
Которая вычисляет расстояние между двумя локальными максимумами списка (контейнер list) целых чисел. В первой строке вводится целое число k - количество элементов списка, во второй - элементы списка. Локальный максимум это если число больше своих соседей справа и слева).
Пример ввода программы: 5 7 9 5 8 6 Вывода: 1.
Если вычислить расстояние невозможно, то надо вывести "Расстояние неустановленно"
Голосование за лучший ответ
Сатурн Оракул (62705) 6 месяцев назад
Йог Ивану бы помог, но живёт за морем йог.
Татьяна Просветленный (36384) 5 месяцев назад
 #include  
#include
#include
#include

using namespace std;

int main() {
int k;

// Ввод количества элементов списка
cin >> k;

if (k < 3) {
// Если элементов меньше трех, не может быть локальных максимумов
cout << "Расстояние не установлено" << endl;
return 0;
}

list numbers;
vector localMaxIndices;

// Ввод элементов списка
for (int i = 0; i < k; ++i) {
int num;
cin >> num;
numbers.push_back(num);
}

// Преобразование списка в вектор для удобства индексации
vector nums(numbers.begin(), numbers.end());

// Поиск индексов локальных максимумов
for (int i = 1; i < k - 1; ++i) {
if (nums[i] > nums[i - 1] && nums[i] > nums[i + 1]) {
localMaxIndices.push_back(i);
}
}

if (localMaxIndices.size() < 2) {
// Если локальных максимумов меньше двух, вывести сообщение
cout << "Расстояние не установлено" << endl;
} else {
// Вычисление минимального расстояния между локальными максимумами
int minDistance = numeric_limits::max();
for (size_t i = 1; i < localMaxIndices.size(); ++i) {
int distance = localMaxIndices[i] - localMaxIndices[i - 1];
if (distance < minDistance) {
minDistance = distance;
}
}
cout << minDistance - 1 << endl; // вычитаем 1, так как индексация начинается с нуля
}

return 0;
}
Результат Если вычислить расстояние невозможно, то выводит "Расстояние неустановленно"
Похожие вопросы