Нужно решение в С++ Дана последовательность целых чисел. Требуется найти подпоследовательность заданной последовательности с максимальным модулем суммы входящих в нее чисел. Напомним, что модуль целого числа x равняется x, если x ≥ 0 и -x, если x < 0. Входные данные Первая строка входного файла INPUT.TXT содержит натуральное число n (1 ≤ n ≤ 10000) - длину последовательности. Во второй строке записаны n целых чисел, по модулю не превосходящих 10000. Выходные данные В первой строке выходного файла OUTPUT.TXT выведите длину l выбранной вами подпоследовательности. Во второй строке должны быть записаны l различных чисел, разделенных пробелами - номера выбранных членов последовательности.

9 Мая 2019 в 19:46
340 +1
0
Ответы
1

Пример решения на C++:

#include <iostream>
#include <vector>
#include <cmath>
int main() {
int n;
std::cin >> n;
std::vector<int> sequence(n);
for (int i = 0; i < n; i++) {
std::cin >> sequence[i];
}
int max_sum = 0;
int current_sum = 0;
int start_index = 0;
int end_index = 0;
int current_start_index = 0;
for (int i = 0; i < n; i++) {
current_sum += sequence[i];
if (std::abs(current_sum) > std::abs(max_sum)) {
max_sum = current_sum;
start_index = current_start_index;
end_index = i;
}
if (current_sum < 0) {
current_sum = 0;
current_start_index = i + 1;
}
}
std::cout << end_index - start_index + 1 << std::endl;
for (int i = start_index; i <= end_index; i++) {
std::cout << i + 1 << " ";
}
return 0;
}

Эта программа сначала считывает длину последовательности и саму последовательность из входного файла, затем находит подпоследовательность с максимальным модулем суммы входящих в нее чисел и выводит ее длину и номера элементов.

28 Мая в 16:37
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 91 734 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир