Вопрос задан 02.05.2018 в 07:00. Предмет Информатика. Спрашивает Курбатов Дмитрий.

Пара элементов в массиве называется симметричной , если эти элементы находятся на одинаковом

расстоянии от концов массива. Так в массиве размером 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
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Искендерова Эмилия.

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.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос