      1. ६, ࠦ, ᢠ.

     1.1.   ᨢ

     1.1.1.   楫 ६ a, b.  ⠢  ࠣ
ணࠬ, ᫥ ᯮ ண 祭 ६ -
  ⠬ ( 祭 a ࠢ ஬ 祭 b  -
).

     襭.  ⥫ 楫 ६ t.
        t := a;
        a := b;
        b := t;
⪠   ⥫쭮 ६, ᠢ
        a := b;
        b := a;
 ਢ  楫 (⭮ 稢 砫쭮 祭
६ a).

     1.1.2.    ।  ,    ᯮ -
⥫ ६ ( ।,  祭ﬨ 楫 ६-
   ந 楫 ᫠).

     襭. (砫 祭 a  b 稬 a0, b0.)
        a := a + b; {a = a0 + b0, b = b0}
        b := a - b; {a = a0 + b0, b = a0}
        a := a - b; {a = b0, b = a0}

     1.1.3.    楫  ᫮   ࠫ쭮 (楫 -
⥫쭮) ᫮ n. ᫨   ⥯ n. 㣨 ᫮,  -
室  ⠢  ணࠬ,   ᯮ ன 祭
६   n  ,  祭 ன 㣮  -
  (ਬ, b) ⠭ ࠢ   ⥯ n. ( ⮬
ࠧ蠥 ᯮ짮  㣨 ६.)

     襭.  楫 ६ k,     0
  n,  祬  ন ⠪ ᢮⢮: b = (a  ⥯
k).

        k := 0; b := 1;
        {b = a  ⥯ k}
        while k <> n do begin
        | k := k + 1;
        | b := b * a;
        end;

㣮 襭 ⮩  :

        k := n; b := 1;
        {a  ⥯ n = b * (a  ⥯ k)}
        while k <> 0 do begin
        | k := k - 1;
        | b := b * a;
        end;

     1.1.4.  । , ᫨ ॡ, ⮡ -
 ⢨ (믮塞 ஢ ᢠ)  뫮  浪
log n (   ॢ室  C*log n  ன ⠭-
 C; log n -  ⥯,   㦭  2, ⮡ -
 n).

     襭. ᥬ    ஥  ।-
 襭 ।饩 :

        k := n; b := 1; c:=a;
        {a  ⥯ n = b * (c  ⥯ k)}
        while k <> 0 do begin
        | if k mod 2 = 0 then begin
        | | k:= k div 2;
        | | c:= c*c;
        | end else begin
        | | k := k - 1;
        | | b := b * c;
        | end;
        end;

 ன ࠧ ( ०)  㤥  믮    ਠ
  롮  (᫨  k  ⭮,  ᫥ ⠭ 
⠭ ), ⠪    横 稭 k  㬥蠥
 ࠩ  .

     1.1.5.   ࠫ ᫠ , b. ᫨ ந
*b, ᯮ  ணࠬ  樨 +, -, =, <>.

     襭.
        var a, b, c, k : integer;
        k := 0; c := 0;
        {ਠ: c = a * k}
        while k <> b do begin
        | k := k + 1;
        | c := c + a;
        end;
        {c = a * k  k = b, ᫥⥫쭮, c = a * b}

     1.1.6.    ࠫ  ᫠    b. ᫨  㬬
+b. ᯮ짮  ᢠ  

        <६1> := <६2>,
        <६> := <᫮>,
        <६1> := <६2> + 1.

     襭.
          ...
         {ਠ: c = a + k}
          ...

     1.1.7.  ࠫ쭮 (楫 ⥫쭮) ᫮    
楫 ⥫쭮 ᫮ d. ᫨ ⭮ q  ⮪ r 
   d,  ᯮ 権 div  mod.

     襭. ᭮ ।, a = q * d + r, 0 <= r < d.

        {a >= 0; d > 0}
        r := a; q := 0;
        {ਠ: a = q * d + r, 0 <= r}
        while not (r < d) do begin
        | {r >= d}
        | r := r - d; {r >= 0}
        | q := q + 1;
        end;

     1.1.8.    ࠫ쭮  n,  ᫨ n!
        (0!=1, n! = n * (n-1)!).

     1.1.9.   ᫥⥫쭮    ।  ⠪:
a(0)= 1, a(1) = 1, a(k) = a(k-1) + a(k-2)  k >= 2.    n,
᫨ a(n).

     1.1.10.    , ᫨ ॡ, ⮡ ᫮ 権
뫮 ய樮쭮 log n. (६    楫᫥-
묨.)

     .   ᥤ ᥫ  砥  -
饩 㬭  
            |1 1|
            |1 0|
⠪   ᢮      ⥯  n.  
 ᤥ  C*log n ⢨ ⥬  ᯮᮡ,    -
ᥫ.

     1.1.11.  ࠫ쭮 n, ᫨ 1/0!+1/1!+...+1/n!.

     1.1.12.    , ᫨ ॡ, ⮡ ⢮ 権
(믮  ᢠ) 뫮    C*n   -
ன ⠭ .
     襭.  ਠ:  sum  =  1/1! +...+ 1/k!, last = 1/k!
(     ࠧ k!).

     1.1.13.      ࠫ ᫠ a  b,  ࠢ 
६. ᫨  (a,b) - 訩 騩 ⥫  
 b.

     襭 (1 ਠ).

        if a > b then begin
        | k := a;
        end else begin
        | k := b;
        end;
        {k = max (a,b)}
        {ਠ:   ᫮, 襥 k,   -
          騬 ⥫}
        while not (((a mod k)=0) and ((b mod k)=0)) do begin
        | k := k - 1;
        end;
        {k - 騩 ⥫, 訥 - }

       (2  ਠ -  ). 㤥  ,  
(0,0) = 0.   (a,b) =  (a-b,b)  =    (a,b-a);  
(a,0) =  (0,a) = a   a,b>=0.

         m := a; n := b;
        {ਠ:  (a,b) =  (m,n); m,n >= 0 }
        while not ((m=0) or (n=0)) do begin
        | if m >= n then begin
        | | m := m - n;
        | end else begin
        | | n := n - m;
        | end;
        end;
        if m = 0 then begin
        | k := n;
        end else begin
        | k := m;
        end;

     1.1.14.  ஢ ਠ ⬠ -
,  ᯮ騩 ᮮ⭮襭  (a, b) =  (a mod b, b) 
a >= b,  (a, b) =  (a, b mod a)  b >= a.

     1.1.15.  ࠫ   b,  ࠢ 0  ६.
 d =  (a,b)  ⠪ 楫 x  y,  d = a*x + b*y.

     襭.      ६ p, q, r, s
 襬  ਠ ᫮ m = p*a + q*b; n = r*a + s*b.

        m:=a; n:=b; p := 1; q := 0; r := 0; s := 1;
        {ਠ:  (a,b) =  (m,n); m,n >= 0
                    m = p*a + q*b; n = r*a + s*b.}
        while not ((m=0) or (n=0)) do begin
        | if m >= n then begin
        | | m := m - n; p := p - r; q := q - s;
        | end else begin
        | | n := n - m; r := r - p; s := s - q;
        | end;
        end;
        if m = 0 then begin
        | k :=n; x := r; y := s;
        end else begin
        | k := m; x := p; y := q;
        end;

     1.1.16.  ।  ,  ᯮ    ⬥
   ⪮.

     1.1.17. (.).       -
⥫ ६ u, v, z:

         m := a; n := b; u := b; v := a;
        {ਠ:  (a,b) =  (m,n); m,n >= 0 }
        while not ((m=0) or (n=0)) do begin
        | if m >= n then begin
        | | m := m - n; v := v + u;
        | end else begin
        | | n := n - m; u := u + v;
        | end;
        end;
        if m = 0 then begin
        | z:= v;
        end else begin {n=0}
        | z:= u;
        end;

,  ᫥ ᯮ ⬠ z ࠢ 㤢  -
襬 饬 ⭮ ᥫ a, b: z = 2 *  (a,b).

     襭. ⨬,  稭 m*u + n*v    室
믮  ⬠. ⠥ ᯮ짮 ⥬,  砫
 ࠢ 2*a*b    (a, b) *  (a, b) = a*b.

     1.1.18.    ਠ  ⬠ , ᯮ騩
ᮮ⭮襭
        (2*a, 2*b) = 2*(a,b)
        (2*a, b)   =   (a,b)  ⭮ b,
 騩   ⪮,  ᯮ騩   
2  ஢ ⭮. (᫮ ⢨   浪 log k
 室 ,  ॢ室 k.)

     襭.

  m:= a; n:=b; d:=1;
  {(a,b) = d * (m,n)}
  while not ((m=0) or (n=0)) do begin
  | if (m mod 2 = 0) and (n mod 2 = 0) then begin
  | | d:= d*2; m:= m div 2; n:= n div 2;
  | end else if (m mod 2 = 0) and (n mod 2 = 1) then begin
  | | m:= m div 2;
  | end else if (m mod 2 = 1) and (n mod 2 = 0) then begin
  | | n:= n div 2;
  | end else if (m mod 2=1) and (n mod 2=1) and (m>=n)then begin
  | | m:= m-n;
  | end else if (m mod 2=1) and (n mod 2=1) and (m<=n)then begin
  | | n:= n-m;
  | end;
  end;
  {m=0 => ⢥=d*n; n=0 => ⢥=d*m}

業 ᫠ ⢨:  ஥ ⢨    
 ᥫ m  n .

     1.1.19.   ।饩  ᪮ x  y,
  ax+by=(a,b).

     襭. ( ᮮ饭 .) ० ᥣ  ⨬,
  ६  a  b    ᪮ x  y.
⮬  ,   ᠬ 砫   ᥫ a    b
⭮. ( ᢮⢮ 㤥 ࠭  .)
       ⠥,      ࠭,  ࠭  ⠪  ᫠
p,q,r,s, 
     m = ap + bq
     n = ar + bs
஡  ⮬,   , ᪠, m  2  ࠧ p
  q   2,   ⠭  楫묨 ( ⠭ 筮--
묨). 筮-樮쭮 ᫮ ⢥ ࠭  -
  (᫨⥫, ⥫ ⥯   ⥫).  
⮣    砥  d     樨 a  b  筮--
묨 樥⠬. 묨 ᫮,  
        (2  ⥯ i)* d = ax + by
    楫 x,y  ࠫ쭮 i.  , ᫨ i >
1? ᫨ x  y ,   2  ᮪. ᫨     ⠪,
  ࠢ ८ࠧ
        x := x + b
        y := y - a
(    ax+by).   ⮬. ,   -
,    ᥫ a  b ⭮.   㤥 a. ᫨ 
⮬ y ⭮,   x    ( ax+by  㤥  -
).   ⭮ y ⠭   ⭮ a  y
.

     1.1.20. ⠢ ணࠬ,    -
ࠫ ᥫ  0   ࠫ쭮 n.

     襭.

        k:=0;
        writeln (k*k);
        {ਠ: k<=n, ⠭ 
            k ⥫쭮}
        while not (k=n) do begin
        | k:=k+1;
        | writeln (k*k);
        end;

     1.1.21.    ,  ࠧ蠥 ᯮ짮  -
᪨ 権  ᫮  ⠭, 祬 饥 -
 ⢨   浪 n.

     襭.    ६ k_square (square - ),
易  k ᮮ⭮襭 k_square = k*k:

        k := 0; k_square := 0;
        writeln (k_square);
        while not (k = n) do begin
        | k := k + 1;
        | {k_square = (k-1) * (k-1) = k*k - 2*k + 1}
        | k_square := k_square + k + k - 1;
        | writeln (k_square);
        end;

     1.1.22. ⠢ ணࠬ,  ࠧ  -
 ⥫  ࠫ쭮 ᫠ n > 0 (㣨 ᫮-
, ॡ  ⮫쪮  ᫠  ந -
⠭  ᥫ   ࠢ n; ᫨ n = 1,  祣
 ).

     襭 (1 ਠ).

        k := n;
        {ਠ:  ந ⠭ ᥫ  k ࠢ
         n, ⠭ ⮫쪮  ᫠}
        while not (k = 1) do begin
        | l := 2;
        | {ਠ: k   ⥫  ࢠ (1,l)}
        | while k mod l <> 0 do begin
        | | l := l + 1;
        | end;
        | {l - 訩 ⥫ k, 訩 1, ᫥⥫쭮,
        |  ⮩}
        | writeln (l);
        | k:=k div l;
        end;

     (2 ਠ).

         k := n; l := 2;
         {ந  k  ⠭ ᥫ ࠢ n; -
          ⠭ ᫠ ; k   ⥫,  l}
         while not (k = 1) do begin
         | if k mod l = 0  then begin
         | | {k   l    ⥫,
         | |    l, , l }
         | | k := k div l;
         | | writeln (l);
         | end else begin
         | | { k    l }
         | | l := l + 1;
         | end;
         end;

     1.1.23. ⠢ ணࠬ 襭 ।饩 , -
    䠪,    ⠢ ᫮  ⥫, 
ॢ室騩 ⭮   ⮣ ᫠.

     襭.  ஬ ਠ 襭  l:=l+1  -


                if l*l > k then begin
                | l:=k;
                end else begin
                | l:=l+1;
                end;

     1.1.24. ஢,    ࠫ쭮  ᫮
n > 1 .

     1.1.25. (   ᭮ ).  楫  -
ᮢ  ᫮ n + mi (ਭ饥 Z[i]). (a) ஢, -
    ( Z[i]); ()   ࠧ  
 ( Z[i]) ⥫.

     1.1.26. 訬 ᯮ짮  write (i)   i
=  0,1,2,...,9.  ⠢ ணࠬ,   -
  ࠫ쭮 ᫠ n > 0. (砩 n =  0  
  ᪫祭, ⠪  筮 㫨  砫 ᫠ 
,   n = 0 - .)

     襭.

        base:=1;
        {base - ⥯ 10,  ॢ室 n}
        while 10 * base <= n do begin
        | base:= base * 10;
        end;
        {base - ᨬ쭠 ⥯ 10,  ॢ室 n}
        k:=n;
        {ਠ: ⠫  k  ⥬  ᫮
         ,   base; base = 100..00}
        while base <> 1 do begin
        | write(k div base);
        | k:= k mod base;
        | base:= base div 10;
        end;
        {base=1; ⠫  筮 ᫮ k}
        write(k);

(筠 訡  襭 ⮩ : ࠢ쭮  ࠡ-
 ᫠  ﬨ ।. ਢ ਠ ᪠-
  砩,  k < base;  ⮬ 砥 ⠭ k 稭
  㫥.)

     1.1.27.   ᠬ,      
⭮ 浪. ( n = 173   371.)

     襭.

        k:= n;
        {ਠ: ⠫  k  ⭮ 浪}
        while k <> 0 do begin
        | write (k mod 10);
        | k:= k div 10;
        end;

     1.1.28.  ࠫ쭮 n.   ⢮  襭
ࠢ⢠  x*x + y*y < n  ࠫ (⥫ 楫)
᫠,  ᯮ ⢨  ⢥묨 ᫠.

     襭.

        k := 0; s := 0;
        {ਠ: s = ⢮ 襭 ࠢ⢠
          x*x + y*y < n c x < k}
        while k*k < n do begin
        | ...
        | {t = ᫮ 襭 ࠢ⢠ k*k + y*y < n
        |  (  k) }
        | k := k + 1;
        | s := s + t;
        end;
        {k*k >= n, ⮬ s = ⢮  襭
          ࠢ⢠}

      ... -    ᠭ ᮪ ணࠬ, 
㤥 ⠪:

        l := 0; t := 0;
        {ਠ: t = ᫮ 襭
          ࠢ⢠ k*k + y*y < n c y < l }
        while k*k + l*l < n do begin
        | l := l + 1;
        | t := t + 1;
        end;
        {k*k + l*l >= n,  ⮬  t = ᫮
           襭 ࠢ⢠ k*k + y*y < n}

     1.1.29.   ,  ⢮  権    
浪 (n  ⥯ 1/2). ( ।饬 襭,  
, 浪 n 権.)

     襭.   窨 ⪨ ( 楫묨 न-
  *              )  ࢮ ࠭, 騥  㣠
  * * *          ࠤ  (n    ⥯  1/2). 饥 
  * * * *        ⢮ (  X) ⮨   ꥤ-
  * * * *          ⨪  ⮫殢  뢠饩  .
  * * * * *       襭 ⮨   ⮬,  ⮡  "
    ࠭",  ᪠    孥   ,  
⭨. न 饩 窨  稬  <k,l>.  
  ६ s  㤥 ন ⨭ ⠪ -
:
     <k,l> 室 ࠧ  k- ⮫殬;
     s - ᫮ 祪  । ⮫.

     ଠ쭮:
l  - 쭮 ।  l >= 0,   <k,l>  ਭ-
     X;
s - ᫮  ࠫ x, y,   x < k  <x,y>  -
     X.
稬  ᫮ १ ().

  k := 0; l := 0;
  while "<0,l> ਭ X" do begin
  | l := l + 1;
  end;
  {k = 0, l - 쭮 ।  l >= 0,
     <k,l>  ਭ X }
  s := 0;
  {ਠ: }
  while not (l = 0) do begin
  | s := s + l;
  | {s - ᫮ 祪  ⮫  k- ⥫쭮}
  | k := k + 1;
  | {窠 <k,l>   X, ,  ,     ᤢ
  |    , ⮡ ⠭  }
  | while (l <> 0) and ("<k, l-1>  ਭ X") do begin
  | | l := l - 1;
  | end;
  end;
  {, l = 0, ⮬ k- ⮫   ᫥騥 , 
    s ࠢ ᪮ }

業 ᫠ ⢨ 祢: ᭠砫     -
  祬    (n  ⥯ 1/2) 蠣,  ⥬   ࠢ - 
 ஭   祬  (n  ⥯ 1/2) 蠣.

     1.1.30.  ࠫ ᫠ n  k, n > 1.    k
  ᫠ 1/n. ( 稨   ࠧ-
  롨ࠥ   , ஥  ᮤন ⪨  -
.) ணࠬ  ᯮ짮 ⮫쪮 楫 ६.

     襭.   筮  ᫠ 1/n   k
 ࠢ, 稬 ᫮ (10  ⥯ k)/n.    -
   楫 , . . ࠧ (10  ⥯ k)  n -
楫. ⠭ ᯮᮡ ॡ ᯮ짮    -
稭  ᥫ,     ࠭  ।⠢-
 ᥫ. ⮬  ᤥ  (᫥ 筮 ⮤ "-
 㣮")  㤥 ࠭ "⮪" r:

  l := 0; r := 1;
  {.: ⠭ l ࠧ冷 1/n, ⠫ 
    k - l ࠧ冷 ஡ r/n}
   while l <> k do begin
   | write ( (10 * r) div n);
   |   r := (10 * r) mod n;
   |   l := l + 1;
   end;

     1.1.31.  ࠫ쭮 ᫮ n > 1. ।   -
ਮ 筮  ஡ 1/n.

     襭.  ਮ  ஡  ࠢ ਮ  ᫥⥫쭮
⪮ ( ;  ⭮,  ,      
    ).  ஬ ⮣,  ⮩ ᫥⥫쭮 
ਮ᪨ 騥  童 ࠧ,  ।ਮ -
    n. ⮬ 筮  (n+1)- 童 -
⥫쭮 ⪮   ⥬  쭮  k,    ஬
(n+1+k)- 童 ᮢ  (n+1)-.

  l := 0; r := 1;
  {ਠ: r/n = १ 뢠 l   1/n}
  while l <> n+1 do begin
  | r := (10 * r) mod n;
  | l := l + 1;
  end;
  c := r;
  {c = (n+1)- 童 ᫥⥫쭮 ⪮}
  r := (10 * r) mod n;
  k := 0;
  {r = (n+k+1)- 童 ᫥⥫쭮 ⪮}
  while r <> c do begin
  | r := (10 * r) mod n;
  | k := k + 1;
  end;

     1.1.32 (. ). 㭪 f  ࠫ묨  㬥⠬
  祭ﬨ । ⠪: f(0) = 0, f(1) = 1, f (2n) = f(n),
f (2n+1) = f (n) + f (n+1). ⠢ ணࠬ ᫥ f (n)
  n, ॡ 浪 log  n  権.

     襭.
  k := n; a := 1; b := 0;
  {ਠ: 0 <= k, f (n) = a * f(k) + b * f (k+1)}
  while k <> 0 do begin
  | if k mod 2 = 0  then begin
  | | l := k div 2;
  | | {k = 2l, f(k) = f(l), f (k+1) = f (2l+1) = f(l) + f(l+1),
  | |  f (n) = a*f(k) + b*f(k+1) = (a+b)*f(l) + b*f(l+1)}
  | | a := a + b; k := l;
  | end else begin
  | | l := k div 2;
  | | {k = 2l + 1, f(k) = f(l) + f(l+1),
  | |  f(k+1) = f(2l+2) = f(l+1),
  | |  f(n) = a*f(k) + b*f(k+1) = a*f(l) + (a+b)*f(l+1)}
  | | b := a + b; k := l;
  | end;
  end;
  {k = 0, f(n) = a * f(0) + b * f(1) = b,   ॡ}

     1.1.33.    ,  ᫨  f(0) = 13, f(1) = 17,  f(2n) =
43 f(n) + 57 f(n+1), f(2n+1) = 91 f(n) + 179 f(n+1)  n>=1.
     .  ࠭  樥  ࠦ f(n) १ 
ᥤ ᫠.

     1.1.34.  ࠫ ᫠   b, 祬 b >  0.  
⭮    ⮪       b,    楫묨
᫠   ᯮ 樨 div  mod,  ᪫祭  -
    2    ᥫ;  ᫮  蠣    ॢ室
C1*log(a/b) + C2   ⠭ C1, C2.

     襭.

  b1 := b;
  while b1 <= a do begin
  | b1 := b1 * 2;
  end;
  {b1 > a, b1 = b * ( ⥯ 2)}
  q:=0; r:=a;
  {ਠ: q, r - ⭮  ⮪   a  b1,
   b1 = b * ( ⥯ 2)}
  while b1 <> b do begin
  | b1 := b1 div 2 ; q := q * 2;
  | { a = b1 * q + r, 0 <= r, r < 2 * b1}
  | if r >= b1 then begin
  | | r := r - b1;
  | | q := q + 1;
  | end;
  end;
  {q, r - ⭮  ⮪   a  b}

     1.2. ᨢ.

      ᫥  ६ x, y, z ।  -
ᠭ묨    array [1..n] of integer (n - ஥ ࠫ쭮
᫮, 襥 0), ᫨   ७ .

     1.2.1.  ᨢ x ﬨ. ( 砥,   㦭
⠢ ࠣ ணࠬ, ᫥ 믮 ண  -
祭  x[1]..x[n]  ࠢ﫨    , ᨬ  砫쭮
祭 ६ x.)

     襭.

          i := 0;
          {ਠ:  i 祭 x[1]..x[i] ࠢ 0}
          while i <> n do begin
          | i := i + 1;
          | {x[1]..x[i-1] = 0}
          | x[i] := 0;
          end;

     1.2.2.  ⢮ 㫥  ᨢ x.  (⠢
ࠣ ணࠬ,  騩 祭 x, ᫥ ᯮ -
ண  祭 ன 楫 ६ k ࠢ﫮  
㫥 ।  ᨢ x.)

     襭.
          ...
          {ਠ: k= ᫮ 㫥 । x[1]...x[i] }
          ...

     1.2.3.  ᯮ   ᢠ    ᨢ,
⠢ ࠣ ணࠬ,   x:=y.

     襭.

  i := 0;
  {ਠ: 祭 y  , x[l] = y[l]  l <= i}
  while i <> n do begin
  | i := i + 1;
  | x[i] := y[i];
  end;

     1.2.4.  ᨬ  x[1]..x[n].

     襭.
          i := 1; max := x[1];
          {ਠ: max = ᨬ  x[1]..x[i]}
          while i <> n do begin
          | i := i + 1;
          | {max = ᨬ  x[1]..x[i-1]}
          | if x[i] > max then begin
          | | max := x[i];
          | end;
          end;

     1.2.5.    ᨢ x: array [1..n] of integer,  x[1]
<= x[2] <= ... <= x[n].  ⢮ ࠧ  ᥫ  ।
⮢ ⮣ ᨢ.

     襭. (1 ਠ)

  i := 1; k := 1;
  {ਠ: k - ⢮ ࠧ ᥫ । x[1]..x[i]}
  while i <> n do begin
  | i := i + 1;
  | if x[i] <> x[i-1] then begin
  | | k := k + 1;
  | end;
  end;

     (2 ਠ) ᪮ ᫮  1  ⢠   ᥫ
i  1..n-1,   x[i] <> x[i+1].

  k := 1;
  for i := 1 to n-1 do begin
  | if x[i]<> x[i+1] then begin
  | | k := k + 1;
  | end;
  end;

     1.2.6. (騫 ..㤭.) אַ㣮쭮  m  n ࠧ-
   mn  ⮪.  ⪨ 襭  -
 梥. ⭮,    ⪨   ࠧ  
᪮쪮 ᥪ     設  -
㣮쭨. ,  梥 ⮪    ᨢ ⨯
        array [1..m] of array [1..n] of boolean;
  ᫮    אַ㣮쭨,    諠 .
᫮ ⢨   浪 m*n.

     襭. ᫮ אַ㣮쭨 ࠢ    孨
㣫.   ⪠ 孨 㣫,  㧭, ᬮॢ
  梥,  ⠪ 梥 孥      ᥤ.  (  -
,     , ᫨ ⪠  .)

     1.2.7.  ᨢ x: array [1..n] of integer.    -
⢮  ࠧ  ᥫ  ।  ⮢ ⮣ ᨢ. (᫮
⢨   浪 n*n.)

     1.2.8.      ,  ᫨  ॡ,  ⮡ ⢮
⢨ 뫮 浪 n* log n. (.    -
஢.)

     1.2.9.   , ᫨ ⭮,    -
 - ᫠  1  k  ᫮ ⢨   浪 n+k.

     1.2.10.  ᨢ x [1]..x[n] 楫  ᥫ.    ᯮ
㣨  ᨢ, ⠢  ᨢ  ⭮ -
.

     襭. ᫠ x [i]  x [n+1-i] 㦭  ⠬ 
 i,   i < n + 1 - i, .. 2*i < n + 1 <=> 2*i <= n
<=> i <= n div 2:
  for i := 1 to n div 2 do begin
  | ... x [i]  x [n+1-i];
  end;

     1.2.11.  (    .)     ᨢ   楫   ᥫ
x[1]..x[m+n],  ᬠਢ  ᮥ   १:
砫 x[1]..x[m]  m   x[m+1]..x[m+n]  n.  -
 ⥫ ᨢ,  ⠢  砫    .
(᫮ ⢨ 浪 m+n.)

     襭. (1 ਠ). ॢ୥ (ᯮ  ⭮ -
浪) ⤥쭮 砫   ᨢ,  ⥬ ॢ୥  
ᨢ   楫.

     (2 ਠ, ..譨७). ᬠਢ ᨢ ᠭ
 , ,  ॡ㥬 ⢨ -  㣠.  -
⭮,     ᥢ ᨬ਩.

     (3  ਠ).  ᬮਬ      -  
⪮ ᨢ x[p+1]..x[q]  x[q+1]..x[s].  ।,  
    ⪠  (   A)    ࠢ
(  B). 뤥  B 砫 ⮩  ,   A, -
  B1,  ⮪ B2. (  B = B1 + B2, ᫨  
ᮬ ਯ뢠 ᨢ   .)    A + B1 +
B2  B1 + B2 + A.  ⠬ ⪨ A  B1 -  -
  ,  ᤥ  ,- 砥 B1 + A + B2,
  ⠫    ⠬ A  B2.  ᠬ  ᢥ  
⠭  ৪ 襩 . ⠪,  砥  ⠪
奬 ணࠬ:

  p := 0; q := m; r := m + n;
  {ਠ: ⠫ ⠢ x[p+1]..x[q], x[q+1]..x[s]}
  while (p <> q) and (q <> s) do begin
  | { ⪠ }
  | if (q - p) <= (s - q) then begin
  | | ..⠢ x[p+1]..x[q]  x[q+1]..x[q+(q-p)]
  | | pnew := q; qnew := q + (q - p);
  | | p := pnew; q := qnew;
  | end else begin
  | | ..⠢ x[q-(r-q)+1]..x[q]  x[q+1]..x[r]
  | | qnew := q - (r - q); rnew := q;
  | | q := qnew; r := rnew;
  | end;
  end;

業 ६ ࠡ:  । 蠣 ⠢訩  ࠡ-
 ⮪ ⠭    A; ᫮ ⢨  ⮬
⠪ ய樮쭮  A.

     1.2.12. 樥 童 ࠭  ᨢ a: array
[0..n]  of  integer (n - ࠫ쭮 ᫮, ⥯ 童).
᫨ 祭 ⮣ 童  窥 x (. .  a[n]*(x  
⥯ n)+...+a[1]*x+a[0]).

     襭. (뢠  뢠 奬 ୥.)

  k := 0; y := a[n];
  {ਠ: 0 <= k <= n,
   y= a[n]*(x  ⥯ k)+...+a[n-1]*(x  ⥯ k-1)+...+
                     + a[n-k]*(x  ⥯ 0)}
  while k<>n do begin
  | k := k + 1;
  | y := y * x + a [n - k];
  end;

     1.2.13. (   ᭮ . 騫  ..-
७.)      ᫥ 祭 童 
 窥  奬 ୥ ᫥ 祭   ந-
  ⮩  窥.

     襭.   樥 ᮮ⢥ -
室  童 P(x)  童 P(x)*x + c.  ந
  窥  x ࠢ P'(x)*x + P(x). ( 襭  
᢮⢮:    ࠭ ⥯ 童. ᫨ ॡ-
 믮 ⮣ ᫮,       ⮫쪮
祭 ந,  㯮  ᠬ 童, 砥
 ⠪   .)

     1.2.14.    ᨢ
  a:array  [0..k] of integer  b: array [0..l] of integer
࠭ 樥  童 ⥯ k   l.  -
  ᨢ c: array [0..m] of integer 樥  ந-
.  (᫠ k, l, m - ࠫ, m = k + l;  -
ᨢ  ᮬ i ᮤন 樥  x  ⥯ i.)

     襭.

          for i:=0 to m do begin
          | c[i]:=0;
          end;
          for i:=0 to k do begin
          | for j:=0 to l do begin
          | | c[i+j] := c[i+j] + a[i]*b[j];
          | end;
          end;

     1.2.15. ।   ६ 童
ॡ 浪 n*n ⢨  ६    童
⥯ n. ਤ㬠  䥪⨢ (  n) ,
஬  筮  浪  (n    ⥯  (log  4)/(log 3))
⢨.
     . ।⠢ ᥡ,   ६  -
 ⥯ 2k.   ।⠢  
        A(x)*x^k + B(x)        C(x)*x^k + D(x)
( x^k 砥 x   ⥯ k). ந  ࠢ
       A(x)C(x)*x^{2k}  +  (A(x)D(x)+B(x)C(x))*x^k  + B(x)D(x)
⢥ ᯮᮡ ᫥ AC, AD+BC, BD ॡ  -
 童 ⥯ k,   ⢮  ᮪-
          ⠪  :  ᫨ AC, BD 
(A+B)(C+D),  ⥬ ,  AD+BC=(A+B)(C+D)-AC-BD.

     1.2.16.       ᨢ x: array [1..k] of
integer  y: array [1..l] of  integer.    ⢮  
⮢   ᨢ (. . ⢮  楫 t,  -
  t = x[i] = y[j]   i  j). (᫮ ⢨ -
浪 k+l.)

     襭.

  k1:=0; l1:=0; n:=0;
  {ਠ: 0<=k1<=k; 0<=l1<=l; ᪮ ⢥ = n + ⢮
    ⮢  x[k1+1]...x[k]  y[l1+1]..y[l]}
  while (k1 <> k) and (l1 <> l) do begin
  | if x[k1+1] < y[l1+1] then begin
  | | k1 := k1 + 1;
  | end else if x[k1+1] > y[l1+1] then begin
  | | l1 := l1 + 1;
  | end else begin {x[k1+1] = y[l1+1]}
  | | k1 := k1 + 1;
  | | l1 := l1 + 1;
  | | n := n + 1;
  | end;
  end;
  {k1 = k  l1 = l, ⮬   , 㯮 
   ਠ, ,  n ࠢ ᪮ ⢥}

砭.  쥩 ୠ⨢ 筮 뫮  㢥稢
  ६ k1, l1;    ᨬਨ.

     1.2.17.    । , ᫨ ⭮ , 
x[1] <= ... <= x[k]  y[1] <= ... <= y[l] (⠭  
뢠).

     襭.  ᫮  ⠭  뫮 ᯮ짮  쥩
ୠ⨢ 롮: ᤢ k1  l1  1,  ⥬ ᠬ 㬥-
    1  ⢮    ⮢      x[k1+1]...x[k]   
x[l1+1]...x[l].   ਤ  ᫮.

          ...
          end else begin {x[k1+1] = y[l1+1]}
          | t := x [k1+1];
          | while (k1<k) and (x[k1+1]=t) do begin
          | | k1 := k1 + 1;
          | end;
          | while (l1<l) and (x[l1+1]=t) do begin
          | | l1 := l1 + 1;
          | end;
          end;

     砭.  ணࠬ  䥪:  ஢થ ᫮
                  (l1<l) and (x[l1+1]=t)
( ண, 筮)   ࢮ ᪮  -
 ᫥ ( 멤  ࠭ ᨢ)  -
 訡.  ᨨ ᪠,  (A and B), ᭠-
    A    A   B. (  ᥡ,
ਬ, ⥬ Turbo Pascal, 5.0 -   3.0.)   ᠭ-
 訡  .
      ᫨   ⨬   ⠪ ᢮⢮  ᯮ-
    ॠ樨  ᪠  ( ।ᬮ७  ஬
.⮬),   㯨 ⠪.   ⥫  -
 b: boolean  襬:

  if k1 < k  then b := (x[k1+1]=t)  else  b:=false;
  {b = (k1<k) and (x[k1+1] = t}
  while  b  do  begin
  | k1:=k1+1;
  | if k1 < k then b := (x[k1+1]=t) else b:=false;
  end;

 ⠪ ᤥ :

          end else begin {x[k1+1] = y[l1+1]}
          | if k1 + 1 = k then begin
          | | k1 := k1 + 1;
          | | n := n + 1;
          | end else if x[k1+1] = x [k1+2] then begin
          | | k1 := k1 + 1;
          | end else begin
          | | k1 := k1 + 1;
          | | n := n + 1;
          | end;
          end;

 㤥 ,   ᨬ筮.

     ,  㢥 ࠧ  ᨢ      ᠭ,
稢      䨪⨢ .

     1.2.18.   뢠 ᨢ  x:  array  [1..k]  of
integer  y: array [1..l] of integer.  ᫮ ࠧ -
⮢  ।  x[1],...,x[k], y[1],...,y[l]. (᫮ ⢨ -
浪 k+l.)

     1.2.19.    ᨢ x[1] <= ... <= x[k]  y[1] <= ...
<= y[l]. ""   ᨢ z[1] <= ... <= z[m] (m  =  k+l;
      室  ᨢ z ⮫쪮 ࠧ, ᪮쪮
ࠧ  室  饩 ᫮  ᨢ x  y). ᫮ ⢨
浪 m.

     襭.

  k1 := 0; l1 := 0;
  {ਠ: ⢥ , ᫨   z[1]..z[k1+l1]  ਯ
   ࠢ ᮥ ᨢ x[k1+1]..x[k]  y[l1+1]..y[l]}
  while (k1 <> k) or (l1 <> l) do begin
  | if k1 = k then begin
  | | {l1 < l}
  | | l1 := l1 + 1;
  | | z[k1+l1] := y[l1];
  | end else if l1 = l then begin
  | | {k1 < k}
  | | k1 := k1 + 1;
  | | z[k1+l1] := x[k1];
  | end else if x[k1+1] <= y[l1+1] then begin
  | | k1 := k1 + 1;
  | | z[k1+l1] := x[k1];
  | end else if x[k1+1] >= y[l1+1] then begin
  | | l1 := l1 + 1;
  | | z[k1+l1] := y[l1];
  | end else begin
  | | { ⠪  뢠 }
  | end;
  end;
  {k1 = k, l1 = l, ᨢ ᮥ}

      ᭨  ⠪.      ⮯
祪, ஢  䠢.  ᮥ塞      
⮯,  롨  ࠧ   孨 祪  ⮯,
  ࠭  䠢⭮ 浪.

     1.2.20.   ᨢ x[1] <= ... <= x[k]  y[1] <=  ...
<=  y[l].      "祭",  .. ᨢ z[1] <= ... <=
z[m], ᮤঠ騩  騥  ,  祬  ⭮  
  ᨢ z ࠢ    ⭮⥩  -
ᨢ x  y. ᫮ ⢨ 浪 k+l.

     1.2.21.   ᨢ x[1]<=...<=x[k]   y[1]<=...<=y[l]
  ᫮ q.  㬬  x[i]+y[j],    
q. (᫮ ⢨ 浪 k+l, ⥫쭠  - 䨪-
 ᫮ 楫 ६, ᠬ ᨢ   ࠧ蠥-
.)
     .   쭮 ﭨ  -
 x[1]<=...<=x[k]  q-y[l]<=..<=q-y[1],  㤭 ᤥ  
室  ᫨ﭨ   (ࠦ) ᨢ.

     1.2.22. (  .) ஥  ᫮  ᮤন  
   楫᫥ 뢠 ᨢ x[1] <= ... <=
x[p],  y[1]  <=  ... <= y[q], z[1] <= ... <= z[r].   
⠪ ᥫ. ᫮ ⢨   浪 p + q + r.

     襭.

  p1:=1; q1=1; r1:=1;
  {ਠ: x[p1]..x[p], y[q1]..y[q], z[r1]..z[r]
   ᮤঠ 騩  }
  while not ((x[p1]=y[q1]) and (y[q1]=z[r1])) do begin
  | if x[p1]<y[q1] then begin
  | | p1:=p1+1;
  | end else if y[q1]<z[r1] then begin
  | | q1:=q1+1;
  | end else if z[r1]<x[p1] then begin
  | | r1:=r1+1;
  | end else begin
  | | { ⠪  뢠 }
  | end;
  end;
  {x[p1] = y[q1] = z[r1]}
  writeln (x[p1]);

     1.2.23.   , ⮫쪮 ࠭  ⭮, -
   騩    뢠 ᨢ  ॡ 
᭨ (     ⮢, ᫨  ).

     1.2.24. ⠬  ᨢ  a[1..n]    뢠騥
ᨢ  [1..m]  楫 ᥫ (a: array [1..n] of array [1..m] of
integer; a[1][1] <= ... <=  a[1][m],  ...,  a[n][1]  <=  ...  <=
a[n][m]). ⭮,   ᫮, 室饥   -
  a[i]  (  ⠪  ,      类  i  [1..n]
 j  [1..m],  ண a[i][j]=x).    -
 ᥫ .

     襭.  ᨢ b[1]..b[n], ⬥騩 砫 "-
饩 " ᨢ a[1]..a[n].

  for k:=1 to n do begin
  |  b[k]:=1;
  end;
  eq := true;
  for k := 2 to n do begin
  | eq := eq and (a[1][b[1]] = a[k][b[k]]);
  end;
  {ਠ: ⠢訥   ᥪ,  ..  
   ⠪  ,    类 i  [1..n]  j  [1..m],
    襥 b[i],  ண a[i][j] =  ;  eq  <=>  
    ⠢ ⥩ ࠢ}
  while not eq do begin
  | s := 1; k := 1;
  | {a[s][b[s]] - 쭮 । a[1][b[1]]..a[k][b[k]]}
  | while k <> n do begin
  | | k := k + 1;
  | | if a[k][b[k]] < a[s][b[s]] then begin
  | | | s := k;
  | | end;
  | end;
  | {a[s][b[s]] - 쭮 । a[1][b[1]]..a[n][b[n]]}
  | b [s] := b [s] + 1;
  | for k := 2 to n do begin
  | | eq := eq and (a[1][b[1]] = a[k][b[k]]);
  | end;
  end;
  writeln (a[1][b[1]]);

     1.2.25.  ਢ  襭 ।饩  ॡ -
浪 m*n*n ⢨. ਤ㬠 ᯮᮡ  ᫮ ⢨ 浪
m*n.
     .  ਤ  ⢮ ᨬਥ   
 ப  ᭮.   ᭮ ப,  ন
⠪  ᮮ⭮襭:      ⠫  ப ⬥祭 -
 ,   ॢ室騩  ⥪饣    ᭮
ப.

     1.2.26. ( )   ᫥⥫쭮  x[1]  <=
...  <=  x[n] 楫 ᥫ  ᫮ a. ᭨, ᮤন  a 
⮩ ᫥⥫쭮, . .   i  1..n,   -
ண x[i]=a. (⢮ ⢨ 浪 log n.)

     襭. (।,  n > 0.)

  l := 1; r := n+1;
  {᫨ a  ,    । x[l]..x[r-1], r > l}
  while r - l <> 1 do begin
  | m := l + (r-l) div 2 ;
  | {l < m < r }
  | if x[m] <= a then begin
  | | l := m;
  | end else begin {x[m] > a}
  | | r := m;
  | end;
  end;
( ,    砥 x[m] = a ਠ  -
.)
      ࠧ r-l 㬥蠥 ਬ୮ , 㤠  ⥪-
 ॡ㥬 業 ᫠ ⢨.
     砭.
l + (r-l) div 2 = (2l + (r-l)) div 2 = (r+l) div 2.

     1.2.27. (  .)  ᨢ x:  array  [1..n]  of
array  [1..m]  of  integer,  㯮冷祭    "ப"    
"⮫栬":
         x[i][j] <= x[i+1][j],
         x[i][j] <= x[i][j+1]
 ᫮ a. ॡ ᭨, 砥  a । x[i][j].

     襭. ।⠢ ᥡ  ᨢ  a      (אַ-
㣮쭨,   ᫠),  롥६ אַ㣮쭨,  -
஬ ⮫쪮   ᮤঠ a,  㤥   㦠.  אַ-
㣮쭨  㤥 ᮤঠ x[i][j]  1<=i<=l  k<=j<=m.
                1                     k         m
               -----------------------------------
              1|                     |***********|
               |                     |***********|
               |                     |***********|
              l|                     |***********|
               |---------------------------------|
               |                                 |
              n|                                 |
               -----------------------------------
(᪠  אַ㣮쭨  l = 0  k = m+1).

  l:=n; k:=1;
  {l>=0, k<=m+1, ᫨ a ,   ᠭ אַ㣮쭨}
  while (l > 0) and (k < m+1) and (x[l][k] <> a) do begin
  | if x[l][k] < a then begin
  | | k := k + 1; { ⮫  ᮤন a, 㤠塞 }
  | end else begin {x[l][k] > a}
  | | l := l - 1; { ப  ᮤন a, 㤠塞 }
  | end;
  end;
  {x[l][k] = a  אַ㣮쭨  }
  answer:= (l > 0) and (k < m+1) ;

     砭.     訡: x[l][k]   -
।. ( ࠢ ।⠢ ⥫.)

     1.2.28. (᪮᪠   ணࠬ஢)  -
뢠騩 ᨢ ⥫ 楫 ᥫ a[1] <= a[2]  <=...<=
a[n].   襥 楫 ⥫쭮 ᫮,  ।⠢-
   㬬 ᪮쪨 ⮢ ⮣ ᨢ ( -
 ᨢ   ᯮ짮    ࠧ). ᫮
⢨ 浪 n.

     襭.  ⭮,   ᫠,  ।⠢    
㬬 ⮢ a[1],...,a[k],  १  1  -
ண N. ᫨ a[k+1] > N+1,  N+1  㤥  ᫮, 
।⠢    㬬 ⮢ ᨢ a[1]..a[n]. ᫨ 
a[k+1] <= N+1,  ᫠, ।⠢      㬬  ⮢
a[1]..a[k+1],  १  1  N+a[k+1].

  k := 0; N := 0;
  {ਠ: ᫠, ।⠢   㬬 ⮢ ᨢ
   a[1]..a[k],  १ 1..N}
  while (k <> n) and (a[k+1] <= N+1) do begin
  | N := N + a[k+1];
  | k := k + 1;
  end;
  {(k = n)  (a[k+1] > N+1);    ⢥ N+1}
  writeln (N+1);

(   䥪:  ᫮ 横   ࢮ  ᫮
஥  ।.)

     1.2.29.  (    ᭮ )  楫᫥
ᨢ a[1]..a[n] ࠭ ⠭ ᥫ 1..n  (  
ᥫ 砥   ࠧ).
     () । ⭮ ⠭. (  (),   () -
⢮ ⢨ 浪 n.)
     ()   ᯮ 㣨 ᨢ,  ⠭ 
 (᫨  ࠡ ணࠬ a[i]=j,  ᫥   
a[j]=i).

     .  ()  ⭮  ⠭  ।  -
⢮ 横. ⮡ ⫨ 㦥 ன 横,     -
⮢ , ਬ,  . () 饭 ந 
横.

     1.2.30.  ᨢ a[1..n]  ᫮ b. ⠢  ᫠  
ᨢ  ⠪  ࠧ, ⮡ ᫥  ன ࠭ 﫨
᫠, 訥  ࠢ b,  ࠢ  ࠭ -  訥  
ࠢ b.

     襭.

        l:=0; r:=n;
        {ਠ: a[1]..a[l]<=b; a[r+1]..a[n]>=b}
        while l <> r do begin
        | if a[l+1] <= b then begin
        | | l:=l+1;
        | end else if a[r] >=b then begin
        | | r:=r-1;
        | end else begin {a[l+1]>b; a[r]<b}
        | |  a[l+1]   a[r]
        | | l:=l+1; r:+r-1;
        | end;
        end;

     1.2.31.   ,  ॡ, ⮡ ᭠砫 諨  -
,  訥  b, ⥬ ࠢ b,   ⥬ 訥 b.

     襭.    ॡ   ࠭:  ࢮ 
 , 訥 b,  ࢮ  ன - ࠢ b,  ⥬
⭮   쥩,  ᫥ 쥩 - 訥 b. (
ᨬ筮  襭 ᯮ짮   ࠭,   
 ⮨ ᢥ.)  ⢥ । ᬠਢ -
 ६  ࠢ  । ࠭.

     l:=0; m:=0; r:=n;
     {ਠ: a[1..l]<b; a[l+1..m]=b; a[r+1]..a[n]>b}
     while m <> r do begin
     | if a[m+1]=b then begin
     | | m:=m+1;
     | end else if a[m+1]>b then begin
     | |  a[m+1]  a[r]
     | | r:=r-1;
     | end else begin {a[m+1]<b}
     | |  a[m+1]  a[l+1]
     | | l:=l+1; m:=m+1;
     end;

     1.2.32.  (ਠ  ।饩  ,      
 祩  ᪮ 䫠)  ᨢ  ᫠ 0, 1
  2.  ⠢     浪 ⠭, ᫨ ⢥
ࠧ襭 樥 ( ⥭)  ᨢ   -
⠭  ⮢.

     1.2.33.  ᨢ a[1]..a[n]    ᫮  m<=n.    
㯯   m  冷 童 (⠪ 㯯, 祢, n-m+1)
᫨  㬬. 饥 ᫮ ⢨   浪 n.

     襭.  室   㯯  ᥤ,  塞 
童,  㣮 ⠥.

     1.2.34.  ⭠ ⠡ a[1..n][1..n]  ᫮ m<=n.
   ࠧ m  m    ⮩  ⠡  ᫨
㬬     ᥫ. 饥 ᫮ ⢨   -
浪 n*n.

     襭. 砫   ਧ⠫쭮 אַ㣮쭨
ࠧ஬ n  1 塞 㬬    ᥫ. ( ᤢ
⠪  אַ㣮쭨    ਧ⠫  1 㦭  
᫮   .) ⥬,  ᯮ    㬬,  塞
㬬  . ( ᤢ   ⨪ 
᪠,  㣠 ᪠ 㡠.)

     1.3. ⨢ 㭪樨 ( ..譨७).

      M - ஥ ⢮. 㭪 f, 㬥⠬ -
ன  ᫥⥫쭮 ⮢ ⢠ M,   -
ﬨ -  ண ⢠ N, 뢠 ⨢,
᫨   祭  ᫥⥫쭮 x[1]..x[n]  -
   祭  ᫥⥫쭮  x[1]..x[n-1]    
x[n],  .  .  ᫨    㭪 F  N*M (⢮ 
<n,m>,  n -  ⢠ N,  m -  ⢠ M) 
N,  ன

      f(<x[1],...,x[n]>) = F (f (<x[1],...,x[n-1]>), x[n]).

     奬 ⬠ ᫥ ⨢ 㭪樨:

  k := 0; f := f0;
  {ਠ: f - 祭 㭪樨  <x[1],...,x[k]>}
  while  k<> n do begin
  | k := k + 1;
  | f := F (f, x[k]);
  end;

      f0 - 祭 㭪樨    ⮩  ᫥⥫쭮
(᫥⥫쭮    0). ᫨ 㭪 f । ⮫쪮
  ᫥⥫쭮,  ࢠ ப   
"k := 1; f := f (<x[1]>);".

     ⨢ ७.

     ᫨ 㭪 f   ⨢,   ᪠  
⨢  ७  - ⠪ ⨢ 㭪 g, 祭
ன । 祭 f ( ,    ⠪
㭪  t,    f  (<x[1]...x[n]>) = t (g (<x[1]...x[n]>)) 
 <x[1]...x[n]>).  ,  ।   ⨢
७    쭮  ७ F (쭮
砥,    ⨢ ७  g  祭  F
। 祭ﬨ g).

     1.3.1.    ⨢  ७      ᫥
㭪権:
   )  ।  䬥᪮  ᫥⥫쭮 ⢥
ᥫ;
   ) ᫮ ⮢ ᫥⥫쭮 楫 ᥫ, ࠢ 
ᨬ쭮 ;
   )  ன  稭  ᫥⥫쭮 楫 ᥫ
(,  㤥 , ᫨ ⠢ 童  뢠饬
浪);
   ) ᨬ쭮 ᫮    ⮢;
   ) ᨬ쭠  ⮭ (뢠饣    -
饣)  ⪠       ⮢  ᫥-
⥫쭮 楫 ᥫ;
   ) ᫮ 㯯  , ࠧ ﬨ  (  ᫥-
⥫쭮 㫥  ).

     襭.

) <㬬  童 ᫥⥫쭮; >;

)  <᫮  ⮢,  ࠢ  ᨬ쭮;  祭 -
     쭮>;

) <訩  ᫥⥫쭮; ன    稭
     >;

) <ᨬ쭮 ᫮    ⮢; -
           ⮢   ᫥-
     ⥫쭮; ᫥  ᫥⥫쭮>;

) <ᨬ쭠  ⮭ ⪠; ᨬ쭠  
      뢠饣  ⪠    ᫥⥫쭮; -
      쭠  饣 ⪠    ᫥-
      ⥫쭮; ᫥ 童 ᫥⥫쭮>;

) <᫮ 㯯  , ᫥ 童>.

     1.3.2. (騫 .ᮭ쥢.)   ᫥⥫쭮
x[1]..x[n]  y[1]..y[k] 楫 ᥫ. ᭨,    -
 ᫥⥫쭮 ᫥⥫쭮 ࢮ, . . -
     ࢮ ભ  童 ⠪, ⮡ ⠫
. ᫮ ⢨ 浪 n+k.

       襭.  (1  ਠ)  㤥  ᢮      
襣 ࠧ.

  n1:=n;
  k1:=k;
  {ਠ:  ᪮ ⢥ <=>   x[1]..x[n1] -
    y[1]..y[k1] }
  while (n1 > 0) and (k1 > 0) do begin
  | if x[n1] = y[k1] then begin
  | | n1 := n1 - 1;
  | | k1 := k1 - 1;
  | end else begin
  | | n1 := n1 - 1;
  | end;
  end;
  {n1 = 0  k1 = 0; ᫨ k1 = 0,  ⢥ - , ᫨ k1 <>  0
   ( n1 = 0),  ⢥ - }
  answer := (k1 = 0);

      ᯮ짮 ,  ᫨ x[n1] = y[k1]  y[1]..y[k1] -
᫥⥫쭮 x[1]..x[n1],  y[1]..y[k1-1] - ᫥-
⥫쭮 x[1]..x[n1-1].

     (2  ਠ)  㭪 x[1]..x[n1] |-> (ᨬ쭮 k1, 
ண y[1]..y[k1]  ᫥⥫쭮 x[1]..x[n1]) -
⨢.

     1.3.3.   ᫥⥫쭮 x[1]..x[n]   y[1]..y[k]
楫  ᥫ.  ᨬ  ᫥⥫쭮, -
饩 ᫥⥫쭮   ᫥⥫쭮⥩.  -
⢮ 権 浪 n*k.

     襭  (ᮮ饭 ..梠, ..⬠). -
稬 १  f(n1,k1)  ᨬ    饩  ᫥-
⥫쭮 ᫥⥫쭮⥩ x[1]..x[n1]  y[1]..y[k1]. 

   x[n1] <> y[k1] => f(n1,k1) = max (f(n1,k1-1), f(n1-1,k1));
   x[n1] = y[k1]  => f(n1,k1) = max (f(n1,k1-1), f(n1-1,k1),
                              f(n1-1,k1-1)+1 );

(᪮  f(n1-1,k1-1)+1  >= f(n1,k1-1), f(n1-1,k1),  ஬
砥 ᨬ  ᥫ      .)
     ⮬   ⠡ 祭 㭪樨 f, 
ࠧ n*k.     浪 k ( n), ᫨ -
⨢  (  n1) 믨 <f(n1,0), ..., f(n1,k)> ( 㭪
 n1   ⨢).

     1.3.4 (  .)  ᫥⥫쭮 楫  -
ᥫ  x[1],...,  x[n].    ᨬ   饩
᫥⥫쭮 (᫮ ⢨ 浪 n*log(n)).

     襭. ᪮ 㭪  ⨢,    ᫥饥
⨢  ७:   室  ᨬ쭮 
饩 ᫥⥫쭮 (稬  k) ⠪  -
 u[1],...,u[k],  u[i] = (    ᫥  童
  ᫥⥫쭮⥩  i). 祢, u[1] <=
... <= u[k].    童 x 祭 u   k  -
४.

  n1 := 1; k := 1; u[1] := x[1];
  {ਠ: k  u ᮮ⢥   ᠭ}
  while n1 <> n do begin
  | n1 := n1 + 1;
  | ...
  | {i - 襥   ᥫ १ 1..k,  -
  |    u[i] < x[n1]; ᫨ ⠪ ,  i=0 }
  | if i = k then begin
  | | k := k + 1;
  | | u[k+1] := x[n1];
  | end else begin {i < k, u[i] < x[n1] <= u[i+1] }
  | | u[i+1] := x[n1];
  | end;
  end;

     ࠣ ... ᯮ  筮 ᪠;  ਠ-
 ᫮  u[0] ࠢ  ᪮筮,   u[k+1]
-  ᪮筮;  楫: u[i] < x[n1] <= u[i+1].

  i:=0; j:=k+1;
  {u[i] < x[n1] <= u[j], j > i}
  while (j - i) <> 1 do begin
  | s := i + (j-i) div 2;    {i < s < j}
  | if u[s] >= x[n1] then begin
  | | j := s;
  | end else begin {u[s] < x[n1]}
  | | i := s;
  | end;
  end;
  {u[i] < x[n1] <= u[j], j-i = 1}

     砭.    ⮥  (  쭮) ⨢
७ , ᫨    i  ࠭  ᨬ
   饩  ᫥⥫쭮,  稢饩  
x[i].  ७ ਢ    ᫮ ⢨  -
浪 n*n.

     1.3.5.      㦭   襭 ।饩
, ᫨   ᪠  ᨬ  뢠  ᫥-
⥫쭮?
