Ваня придумал новый алгоритм сортировки и сейчас тренируется на кубиках с цифрами, чтобы понять, как он работает. перед ним на столе лежат кубики с числами от 1 до 10 (на каждом кубике записано одно число), выложенные в таком порядке: 5 4 10 1 6 7 8 9 2 3 за одну операцию ваня берет несколько рядом стоящих кубиков как одну конструкцию, переворачивает и кладет на прежнее место. например, если бы кубики лежали в таком порядке: 1 2 3 4 5 6 7 8 9 10, а ваня взял бы кубики начиная с кубика с цифрой 4 и заканчивая кубиком с цифрой 9 и перевернул бы, то получилась бы такая последовательность: 1 2 3 9 8 7 6 5 4 10. то, что какие-то кубики после выполнения подобных операций окажутся лежащими вверх ногами, ваню не смущает. кроме того, ваня различает кубик с цифрой 6 и кубик с цифрой 9 (они разного цвета, поэтому невозможно одну цифру получить из другой при перевороте). ване понять, какое наименьшее количество таких операций потребуется, чтобы кубики стали лежать в порядке возрастания: 1 2 3 4 5 6 7 8 9 10. комментарий. если бы у него было всего 4 кубика и они лежали в таком порядке: 4 1 3 2, то наименьшее количество операций было бы равно двум: сначала переворачиваем кусок из первых двух кубиков слева, получаем 1 4 3 2, затем переворачиваем кусок из трех кубиков справа, получаем 1 2 3 4.
begin
var a:=106.Step(6).Take(15).ToArray; a.Println
end.
Результат
106 112 118 124 130 136 142 148 154 160 166 172 178 184 190
// PascalABC.NET 3.2, сборка 1325 от 19.10.2016
begin
var b:=ArrRandom(30,-50,50); b.Println;
var a:=ReadInteger('Введите число А:');
Writeln('Сумма отрицательных: ',b.Where(x->x<0).Sum);
Writeln('Cумма положительных, не больших ',a,', равна ',
b.Where(x->(x>0) and (x<=a)).Sum)
end.
Пример
-21 12 8 50 -47 35 45 -2 -30 -33 3 12 41 -29 8 2 -24 -44 -50 -2 -13 -32 33 -29 35 -43 20 -44 42 -3
Введите число А: 36
Сумма отрицательных: -446
Cумма положительных, не больших 36, равна 168