Антон сортирует по возрастанию список из пяти элементов: 15 9 4 7 1 Ему разрешается...

0 голосов
33 просмотров

Антон сортирует по возрастанию список из пяти элементов:
15 9 4 7 1
Ему разрешается поменять местами любые два соседних элемента. Если левый был больше правого, то за такой обмен Антон отдает 1 конфету, а если правый был больше левого, то 2 конфеты. Какое наименьшее количество конфет нужно Антону, чтобы упорядочить список? В итоге все элементы списка должны быть расположены в порядке возрастания слева направо.
Пример. Если у Антона такой список: 2 1 3, то ему хватит одной конфеты – достаточно поменять местами 2 и 1.


Информатика (14 баллов) | 33 просмотров
Дан 1 ответ
0 голосов

15 двигаем в самый конец (4 шага = 4 конфеты)
1 в самое начало  (3шага = 3 конфект)
Ответ: 7 конфект

(6.5k баллов)
0

Получим массив 1 9 4 7 15 - не упорядочен, 9 двигаем вправо, еще 2 конфеты, итого = 9.

0

верно

0

Напишите программу, пусть компьютер трудится.var i,j,k: integer;
a: array[1..5] of integer = (15,9,4,7,1);
priz: boolean;
begin
k:=0;
repeat
priz:=true;
for j:=1 to 4 do
if a[j]>a[j+1] then
begin
swap(a[j],a[j-1]);
inc(k); priz:=false;
end;
until priz;
for i:=1 to 5 do write(a[i],' ');
writeln;
writeln(k,' конфет');
end.

0

Изменить надо строку swap(a[j],a[j-1]) на swap(a[j],a[j+1]), а то вылетит по ошибке.