Для данной сортировки используем алгоритм сортировки слиянием
В начале разбиваем арбузы на 2 группы по 2Каждую группу взвешиваем и сортируем (т.е. всего 2 взвешивания)Теперь собираем вместе, сравниваем сначала более легкие арбузы и находим самый легкий (всего 3 взвешивания)Теперь сравниваем тяжелый арбуз, что в группе с самым легким и более легкий из другой группы, и определяем второй по легкости (всего 4 взвешивания)Потом взвешиваем оставшиеся арбузы и докладываем их по порядку (всего 5 взвешивания)
Var SunnyDay: Array [1..30] Of Boolean;
a, b, c, i: Integer;
Begin
WriteLn('a = ');
ReadLn(a);
WriteLn('b = ');
ReadLn(b);
b := b * 100;
Randomize;
For i := 1 To 30 Do
Begin
If Random(2) = 1 Then
SunnyDay[i] := True
Else
SunnyDay[i] := False;
End;
For i := 1 To 30 Do
Begin
If SunnyDay[i] = True
ThenBegin
a := a + 2;
If a > b Then
a := b;
End
Else
Begin
a := a - 10;
If a < 0 Then
a := 0; End;
End; WriteLn('Дни месяца были таковы:');
For i := 1 To 30 Do
Begin
If SunnyDay[i] = True Then
WriteLn(i, '. Солнечный')
Else
WriteLn(i, '. Пасмурный')
End;
WriteLn('К концу 30 дня местоположение улитки равно ', a, ' см над землей');
End.