Вопрос, который вызвал трудности

Пара элементов в массиве называется симметричной , если эти элементы находятся на одинаковом расстоянии от концов массива. Так в массиве размером N симметричными будут пары элементов с порядковыми номерами 1 и N , 2 и N - 1 и т.д. (при нумерации с единицы). Напишите программу, которая заполняет массив из N элементов случайными целыми числами в диапазоне [ A , B ] и определяет номера двух симметричных элементов этого массива, сумма которых чётная и максимальная среди всех пар симметричных элементов. Если ни одной такой пары нет, нужно вывести два нуля. Если есть несколько таких пар, нужно вывести номера элементов, составляющих пару, ближайшую к центру массива.

Входные данные
Входная строка содержит три числа: границы диапазона случайных чисел A и B , а также размер массива N . Все числа разделены пробелами. Гарантируется, что 0 < N ≤ 10000 .

Выходные данные
В первой строке программа должна вывести N элементов построенного массива, разделив их пробелами, а во второй строке – номера двух симметричных элементов массива, имеющих максимальную чётную сумму. Если ни одной такой пары нет, нужно вывести два нуля.

Примеры
входные данные
10 20 10
выходные данные
10 10 19 12 13 17 13 11 14 14
5 6

Ответ экспертов Учись.Ru

Чтобы дать полноценный ответ, был привлечён специалист, который хорошо разбирается в теме.

После обсуждения с другими специалистами сервиса мы пришли к выводу, что правильный ответ на ваш вопрос будет звучать следующим образом:

123456789101112131415161718192021222324252627var  c: array[1..10000] of integer;  a, b, n, i, max, max1, max2, p, k, v, m: integer; begin  randomize;  max := -10000;  Readln(a, b, n);  for i := 1 to n do   begin    c[i] := random(b - a + 1) + a; Write(c[i], ' ');   end;  if ((n mod 2) = 0) then k := n div 2 else k := n div 2;  for p := 1 to k do   begin    m := c[p] + c[n - p + 1];    if ((m mod 2) = 0) and (m >= max) then     begin      max := m; max1 := p; max2 := n - p + 1; inc(v);     end;   end;  Writeln(' ');  if (v = 0) then     Writeln(0, ' ', 0)  else    Writeln(max1, ' ', max2);end.