program dl;
label 1;
var
m: array [1 .. 100] of integer;
i, j, n, kol: integer;
Procedure Insertion(n, K: integer; Z: integer);
{ процедура вставки элемента в массив }
Var
j: integer;
begin
For j := n downto K do
m[j + 1] := m[j];
m[K] := Z;
End; { ************конец процедуры-************ }
begin
write('Vvedite N (razmer massiva): ');
readln(n); { считываем размер массива }
for i := 1 to n do
begin
write('M[', i, ']=');
readln(m[i]);
end; { считываем сам масссив }
for i := 1 to n do
write(m[i], ' ');
i := 0;
j := 1;
1:
for i := j to n - 2 do
if m[i] = m[i + 2] - m[i + 1] then
begin { здесь определяем является ли число - Фибонначи }
Insertion(n, i + 1, m[i]);
inc(n);
j := j + 2;
goto 1; { дублируем }
end;
writeln;
writeln;
writeln('Produblirovano:');
for i := 1 to n do
write(m[i], ' '); { выводим исходный масссив на экран }
readln;
end.