Петя играет с разноцветными кубиками. У него есть x красных, y зеленых и z синих кубиков....

0 голосов
68 просмотров

Петя играет с разноцветными кубиками. У него есть x красных, y зеленых и z синих кубиков. Он ставит кубики в ряд один за другим так, чтобы цвета соседних кубиков не совпадали. Какое максимальное количество кубиков можно поставить в ряд, с учетом этого условия?
Написать программу в паскале.
Заранее спасибо.


Информатика (28 баллов) | 68 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1485 от 15.06.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ReadArrInteger('Кол-во красных, зеленых и синих кубиков:',3);
  a.Sort;
  var k:=a[0]*3; a[1]-=a[0]; a[2]-=a[0]; // тройки
  if a[1]>0 then begin
    k+=a[1]*2; a[2]-=a[1]; // пары
    end;
  if a[2]>0 then k+=1; // последний
  Writeln('Максимальное количество в ряду равно ',k)
end.

Пример
Кол-во красных, зеленых и синих кубиков: 8 2 5
Максимальное количество в ряду равно 13
(150k баллов)