Дан массив P1, Р2, ,Р40. Отыскать наибольший из частей, стоящих

Дан массив P1, Р2, ,Р40. Найти наибольший из частей, стоящих на чётных местах.
Домножить на него все элементы, расположенные до отысканного наибольшего.

Задать свой вопрос
1 ответ
// PascalABC.NET 3.3, сборка 1583 от 25.11.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var p:=ArrRandom(40,-99,99); p.Println;
  // максимум посреди четных
  var max:=p.Select((v,i)-gt;(v,i)).Where(t-gt;t[1].IsOdd).Max(t-gt;t[0]);
  // 1-ый из четных индексов частей, одинаковых max
  var im:=p.IndexesOf(t-gt;t=max).Where(t-gt;t.IsOdd).First;
  // домножаем...
  for var i:=0 to im-1 do p[i]*=max; p.Println
end.

Пример
63 53 -46 -34 -65 -87 79 71 57 -93 -49 51 -85 -46 -26 -7 53 96 86 38 -9 -91 71 -82 76 69 84 41 81 -11 5 -53 -94 -97 -92 -42 -85 -39 -43 -92
6048 5088 -4416 -3264 -6240 -8352 7584 6816 5472 -8928 -4704 4896 -8160 -4416 -2496 -672 5088 96 86 38 -9 -91 71 -82 76 69 84 41 81 -11 5 -53 -94 -97 -92 -42 -85 -39 -43 -92
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт