Const n = 10; var a: array[1..n] of integer; i, j, t: integer; flag:boolean;
begin Randomize; Writeln('Исходный массив'); for i := 1 to n do begin a[i] := random(101)-50; Write(a[i]:4) end; Writeln; i:=1; repeat flag:=true; for j := 1 to n-i do if a[j] > a[j+1] then begin t := a[j]; a[j] := a[j+1]; a[j+1] := t; flag:=false end; Inc(i); until (i>n-1) or flag; Writeln('Отсортированный по возрастанию массив'); for i := 1 to n do Write(a[i]:4); Writeln end.
У той хозяйки, у которой 3 литра в 5-литровом бидоне: её молоко выльют 2 литра в пустой 2-литровый бидон и 1 литр первой хозяйке, у которой 5 литров в 6-литровом бидоне. Таким образом сейчас у второй хозяйки пустой бидон, а 2-литровый полный и у первой хозяйки полный. Теперь из 2-литрового выливаем второй хозяйке в 5-литровый бидон и у неё становится 2 литра молока. Теперь первая хозяйка наполнит из своего бидона снова 2-литровый и эти два литра выльют второй хозяйке. таким образом, у второй хозяйки 4 литра и у первой 4 литра
n = 10;
var
a: array[1..n] of integer;
i, j, t: integer;
flag:boolean;
begin
Randomize;
Writeln('Исходный массив');
for i := 1 to n do
begin
a[i] := random(101)-50;
Write(a[i]:4)
end;
Writeln;
i:=1;
repeat
flag:=true;
for j := 1 to n-i do
if a[j] > a[j+1] then
begin t := a[j]; a[j] := a[j+1]; a[j+1] := t; flag:=false end;
Inc(i);
until (i>n-1) or flag;
Writeln('Отсортированный по возрастанию массив');
for i := 1 to n do Write(a[i]:4);
Writeln
end.
Тестовое решение:
Исходный массив
-32 -7 2 2 50 -33 1 31 4 -16
Отсортированный по возрастанию массив
-33 -32 -16 -7 1 2 2 4 31 50