Вася разложил карточки с числами в следующем порядке 6 19 22 25 26 28 30 39 40 46 47 52 21 54 57 58 59 60 62 64 70 68 66 65 74 77 81 83 86 92 петя может поменять за один ход любые две карточки местами. какое минимальное количество ходов должен сделать петя, чтобы упорядочить числа на карточках по возрастанию?
begin
setwindowsize(600,500);
setbrushcolor(clMedGray);
Ellipse(320,30,490,400);
Ellipse(120,30,300,400);
setbrushcolor(clCream);
Ellipse(335,40,480,380);
Ellipse(140,40,280,380);
setbrushcolor(clMedGray);
Ellipse(100,430,500,130);
setbrushcolor(clNavy);
Ellipse(250,240,200,310);
Ellipse(350,240,400,310);
setbrushcolor(clwhite);
Ellipse(240,270,220,300);
Ellipse(360,270,380,300);
setbrushcolor(clblack);
Ellipse(270,330,330,370);
line(300,370,300,400);
Arc(300,280,120,220,-40);
line(50,350,200,350);
line(30,340,190,340);
line(10,330,180,330);
line(410,330,570,330);
line(400,340,560,340);
line(390,350,550,350);
line(240,230,220,150);
line(230,230,180,80);
line(220,230,180,150);
line(360,230,380,150);
line(370,230,430,80);
line(380,230,430,150);
end.
Эта
// Внимание! Если программа не работает, обновите версию!
begin
var a:=SeqRandom(ReadInteger('n='),-50,50).Select(n->double(n/10)).ToArray;
a.ForEach(x->Write(x:0:1,' ')); Writeln;
Writeln('Сумма отрицательных: ',a.Where(x->x<0).Sum);
var p:=a.IndexMin;
var q:=a.IndexMax;
if p>q then Swap(p,q);
Writeln('Произведение на интервале: ',
a[p+1:q].Aggregate(1.0,(x,y)->x*y));
Writeln('Сортировка:');
a.Sort; a.ForEach(x->Write(x:0:1,' ')); Writeln;
end.
Пример
n= 13
1.7 -0.8 -1.3 -1.4 5.0 -3.1 -0.7 -2.7 2.6 -4.9 4.0 -2.0 -2.0
Сумма отрицательных: -18.9
Произведение на интервале: -15.2334
Сортировка:
-4.9 -3.1 -2.7 -2.0 -2.0 -1.4 -1.3 -0.8 -0.7 1.7 2.6 4.0 5.0