Олимпиадные задачи по программированию. Лучшие решения. Часть 1. Ускова О.Ф - 34 стр.

UptoLike

10001
Выходной файл OUTPUT.TXT для примера 2:
123631
АЛГОРИТМ MSort:
| algorithm MSort (N: integer; var A: integer array [1..N]);
| var Help: integer array [1..N];
|
| procedure Make (u, v: integer);
| var i, j, m, k: integer;
| begin
| if u < v then
| m := (u+v) / 2; (* деление нацело с округлением в
сторону нуля
*)
| call Make (u, m);
| call Make (m+1, v);
| i := u; j := m+1; k := u;
| while (i<=m) and (j<=v) do
| (* !!! ОПЕРАТОР СРАВНЕНИЯ *)
| if A[i]<A[j] then Help [k] := A [i]; i := i+1;
| else Help [k] := A [j]; j := j+1;
| end if;
| k := k+1;
| end while;
| while i<=m do Help [k] := A [i]; i:=i+1; k:=k+1; end while;
| while j<=v do Help [k] := A [j]; j:=j+1; k:=k+1; end while;
| for i = u to v do A [i] := help [i]; end for;
| end if;