Наименьшее количество красных : 7+10+1=18
наименьшее количество зеленых: 5+10+1=16
наименьшее количество синих клубков:5+7+1=13
Вот, смотри. Если что непонятно - спрашивай
<h3>PascalABC.NET 3.4.2, сборка 1837 от 11.10.2018</h3><h3>Внимание! Если программа не работает, обновите версию!</h3>
begin
var a := Arr(7, -5, -2, 6, 8);
var b := Arr(0, -1, -1, 0, 0);
var c := a.Zip(b, (p, q)-> p + q).ToArray;
c.Println
end.
Сначала выпишем все наборы значений, которые могут принимать высказывания (A и B). После по порядку приоритета выполняем действия. Т.к. присутствуют скобки, начинаем с них. Первым приоритетом обладает отрицание. Выполняем отрицание значений, т.е. меняем на противоположные. Затем идет конъюнкция. Она принимает значение "1" лишь в тех случаях, когда все высказывания истинны, т.е. имеют значение "1". Последнее действие - дизъюнкция. Она принимает значение "1" в тех случаях, когда истинно хотя бы одно из высказываний.
// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
begin
var d:=ReadReal('D=');
if d<=-30 then Writeln(d/10)
else
if d>=20 then Writeln(sqr(d-1))
else Writeln(1-2*d)
end.