Не могу решить задачу на ветвление

введите сюда описание изображенияПомогите понять почему мой код обрабатывает не все случаи Задание: Даны четыре числа a, b, c, d. Если их сумма - четное число и произведение неотрицательное, то вывести наибольшее из них, если сумма - нечетное число и произведение неотрицательное , то вывести наименьшее из них,если произведение - отрицательное число, то вывести сумму всех четных чисел.

Формат входного файла
Входной файл содержит четыре целых числа

Формат выходного файла
Выходной файл должен содержать одно целое число

Ограничения
-1000≤a,b,c,d≤1000

#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>

int main() {
    std::ifstream input("input.txt");
    std::ofstream output("output.txt");
    int sum = 0;
    std::string str;
    std::string num ="";
    std::vector<int> mas;
    getline(input,str);

    for (int i = 0;i < str.length();i++) {
        if (str[i] == ' ') {
            mas.push_back(stoi(num));
            num = "";
        }
        else {
            num += str[i];
        }
    }
    mas.push_back(stoi(num));

    if ((mas[0] + mas[1] + mas[2] + mas[3]) % 2 == 0 && (mas[0] * mas[1] * mas[2] * mas[3]) >= 0) {
        output << *std::max_element(mas.begin(), mas.end());
    }
    else if (abs(mas[0] + mas[1] + mas[2] + mas[3]) % 2 == 1 && (mas[0] * mas[1] * mas[2] * mas[3]) >= 0) {
        output << *std::min_element(mas.begin(), mas.end());
    }
    else {
        for (int i :mas) {
            if (i % 2 == 0) {
                sum += i;
            }
        }
        output << sum;
    }
    input.close();
    output.close();
}

Ответы (0 шт):