Не могу решить задачу на ветвление
Помогите понять почему мой код обрабатывает не все случаи
Задание:
Даны четыре числа 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();
}