riešenie
- Z analýzy algoritmu dostávame vzťah pre počet hviezdičiek:
A*A-(A-B)*(A-B+1)
= 2*A*B-B*B+B-A
- pre A=10 a B=5 je počet hviezdičiek 70
- pre B=4 dostaneme vzťah 8*A-16+4-A = 7*A-12 >= 111,
t.j. A >= 123/7 = 17.57 t.j. A = 18
pre A=18 a B=4 je počet hviezdičiek
114
- oprava programu je nasledovná:
for i:=2 to n do
begin
k:=a[i]; j:=i;
while k<=a[j-1] do
begin
a[j]:=a[j-1]; j:=j-1;
end;
a[j]:=k;
end;
- riešenie:
- 5 4 3 2 1 - > 1 5 2 4 3
postupnosť akcií:
tam tam tam von tam von von tam von von
- rôznych cieľových poradí je 14
- napr. riešenie
var
a:array [1..1000] of integer;
z,k,N:integer;
begin
read(N);
for z:=1 to N do read(a[z]);
z:=1; k:=1;
repeat
while a[z]>0 do inc(z);
while a[k]<0 do inc(k);
writeln(a[z]:5,a[k]:5);
inc(z); inc(k);
until (z>N) or (k>N);
end;