Задача по информатике
Дан массив a из n целых чисел. За одну операцию можно выбрать два каких-то индекса x и y, после чего заменить число a[x] на сумму a[x]+a[y]. Ваша задача — сделав не более 2n операций получить массив, отсортированный по неубыванию (то есть, сделать так, чтобы каждый элемент был больше или равен, чем предыдущий).
входные данные:
3
5 2 4
выходные данные:
2
2 3
3 2
mass:array[1..100000] of integer;
begin
writeln('Введите кол-во элементов массива');
read(n);
writeln('Введите числа');
for i:=1 to n do// задаем массив пока i не станет равно n (i:=i+1 )
read(mass[i]);//считываем массив с индексом i
min:=mass[1];// обозначаем первый элемент массива за первый
b:=1;// индекс от первого элемента массива
for i:=1 to n do//цикл задаем массив пока i не станет равно n (i:=i+1 )
if mass[i]<min then begin//при условии что массив будет меньше первого числа то
b:=i;// обозначаем индекс
min:=mass[i];// обозначаем новый минимальный массив
end;
for i:=1 to b-1 do// задаем массив пока i не станет равно b-1 (i:=i+1 ); и еще b-1 значит чтобы само число b не входило в цикл
mass[i]:=mass[i]*mass[b];// домножаем на меньший массив
writeln('Полученный массив');// вывод массива
for i:=1 to n do
write(mass[i]:6);
end.
K = 3;
N = 4;
Var
A:array[1..K,1..N] of integer;
Max,Min,i,j:integer;
Begin
For i:= 1 to K do
Begin
For j:= 1 to N do
Begin
A[i,j]:=random(21)-10;
Write(A[i,j]:3,' ')
End;
WriteLn
End;
Max:=A[K,N];
Min:=A[K,N];
For i:= 1 to K do
For j:= 1 to N do
Begin
if Max<A[i,j] then Max:=A[i,j];
if Min>A[i,j] then Min:=A[i,j]
End;
WriteLn('Min = ',Min);
WriteLn('Max = ',Max);
End.
Пример:
-3 -2 5 -8
2 -3 7 5
-10 -2 7 4
Min = -10
Max = 7