Храним в памяти 3 последних считанных числа. Для каждой такой тройки проверяем, верно ли, что a[i] - a[i - 1] = a[i - 1] - a[i - 2] > 0. Если это так, выводим тройку, устанавливаем флажок found и выходим из цикла. Если после завершения работы цикла found = false, то тройка не найдена, нужно вывести -1.
В PascalABC.NET тип integer хранит числа до 2 с лишним миллиардов, все числа и разность чисел должны в нем поместиться.
Код (PascalABC.NET 3.4.2.1837):
begin
var values := new integer[3];
var n := readinteger;
(values[1], values[2]) := readinteger2;
var prev_diff := values[1] - values[0];
var found := false;
for var i := 3 to n do begin
values[i mod 3] := readinteger;
var diff := values[i mod 3] - values[(i - 1) mod 3];
if (diff = prev_diff) and (diff > 0) then begin
print(values[(i - 2) mod 3], values[(i - 1) mod 3], values[i mod 3]);
found := true;
break;
end;
prev_diff := diff;
end;
if not found then print(-1);
end.
Mass = array [1..1000, 1..1000] of Integer;
var
A: Mass;
n, m, i, j: Integer;
begin
Write('Количество строк массива: ');
ReadLn(n);
Write('Количество столбцов массива: ');
ReadLn(m);
for i := 1 To n Do
begin
for j := 1 To m Do
begin
Write('Введите элементы массива A[', i, ',', j, ']=');
ReadLn(A[i, j]);
end;
end;
WriteLn('Итоговый массив:');
for i := 1 to n do
begin
for j := 1 to m do
begin
A[1, j] := 111;
A[i, 2] := 222;
Write(' A[', i, ',', j, ']=', A[i, j], ';')
end;
WriteLn;
end;
end.
Задание можно озвучить так:
Создать массив целых чисел, заполнить его вручную. Заменить все элементы первого рядка на 111 и все элементы второго столбца на 222. Вывести итоговый массив.