Решение задачи Модуль суммы с Acmp

Без пояснения   Просмотров: 64


Дана последовательность целых чисел. Требуется найти подпоследовательность заданной последовательности с максимальным модулем суммы входящих в нее чисел. Напомним, что модуль целого числа x равняется x, если x ≥ 0 и -x, если x < 0.

Код

#include <bits/stdc++.h>

using namespace std;

int main()
{
    /* Разбить числа на отрицательные и положительные, 
    вывести те, сумма которых больше. Вывести их количество. */
    int n, t, s1 = 0, s2 = 0;
    cin >> n;
    vector<int> a;
    vector<int> b;
    for(int i = 0; i < n; ++i){
        cin >> t;
        if(t > 0){
            s1+=t;
            a.push_back(i + 1);
        }
        else{
            s2+=t;
            b.push_back(i + 1);
        }
    }
    if(s1 > abs(s2)){
        cout << a.size() << endl;
        for(auto i: a)
            cout << i << " ";
    }
    else{
        cout << b.size() << endl;
        for(auto i: b)
            cout << i << " ";
    }

    return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться