// PascalABC.NET 3.2, сборка 1467 от 02.06.2017 // Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println; var x:=a.Where(x->x.IsOdd).ToArray; for var i:=1 to x.Count-1 do begin var (j,l):=(i-1,x[i]); while (j>=0) do if x[j]>l then begin x[j+1]:=x[j]; j-=1 end else break; x[j+1]:=l end; var j:=0; for var i:=0 to x.Length-1 do begin while a[j].IsEven do j+=1; a[j]:=x[i]; j+=1 end; a.Println; end.