                      
                   .

                             1.
     , 筮,    ࠧ    । p!,  ⥬
1/p!,  祭 ᫠   㬬.   ⨬ -
  ᫥饥 祢 ࠢ⢮:
                     1/(p+1)! = (1/p!)/(p+1),
 ணࠬ ᫥  ᫥騬 ࠧ
     S:=1; p:=1;       { S = p = 1/1! }
     for i:=2 to k do
       begin
         p:=p/i;
         S:=S+p;
       end;

                             2.
     ⮤ 1.   ⮥ -  ॡ   -
樨     ᫮ "⫨" ⮢.
     Count:=0;             { ⢮ "⫨" ⮢ }
     for a1:=0 to 9 do
       for a2:=0 to 9 do
         for a3:=0 to 9 do
           for a4:=0 to 9 do
             for a5:=0 to 9 do
               for a6:=0 to 9 do
                 if a1+a2+a3=a4+a5+a6  { "⫨"? }
                 then Count:=Count+1;
      ᫮ ⬠ 㤥  ⢮  믮
⥫    㡮   横.  ᫮ if  
横 㤥 ஢ 10^6  ࠧ,  ⮬  㤥  ,  
᫮ ⮣ ⬠ 10^6.
     ⮤ 2.  ⨬   ,     "⫨"  
᫥  a6 筮 । 묨 :
     a6=(a1+a2+a3)-(a4+a5).
     ᫨ 0<=a6<=9,    "⫨",  - .  -
ࠧ,    ⮩  横:
     Count:=0;
     for a1:=0 to 9 do
       for a2:=0 to 9 do
         for a3:=0 to 9 do
           for a4:=0 to 9 do
             for a5:=0 to 9 do
             begin
               a6:=(a1+a2+a3)-(a4+a5);
               if (a6>=0) and (a6<=9)
               then Count:=Count+1;
             end;
      ⬠ 10^5.  ᯮ ୮ ᮮࠦ,
 㬥訫 ᫮ ⬠ ,  , ६ 믮
ணࠬ  10 ࠧ!
     ⮤ 3.  ᫨  権  a1 a2 a3     㬬
T=a1+a2+a3 뢠 C[T],  ᥣ "⫨" ⮢  -
  T=a1+a2+a3=a4+a5+a6 㤥 C[T]^2.  ⢨⥫쭮, -
 "⫨" ࠧ來 ᫮   祭  ᪫
 ந  ࠧ來  ᥫ     㬬 .
ᥣ  28 ᥢ 祭 㬬 T -    0=0+0+0  
27=9+9+9.  ⠥ C[i], i=0, ..., 28, ⥬  饥
 ⢮ "⫨" ⮢ C[0]^2 + C[1]^2 + ... + C[27]^2.
     ⨬,   "⫨"  ⮢    㬬  T ⮫쪮 ,
᪮쪮   㬬 27-T.  ⢨⥫쭮, ᫨  a1 a2 a3 a4 a5
a6    㬬  T  -  "⫨",   ⠪    
(999999 -  a1 a2 a3 a4 a5 a6)  㬬 27-T.  ⮬ ᫮ ⮢
    㫥 2(C[0]^2+ ... +C[13]^2), .. ᬠ-
ਢ ⮫쪮 㬬 T  0  13.
     var C:array[0..13] of longint;  { ᨢ   14 ⮢ -
       . . .                              㬬  }
     Count:=0;
     for T:=0 to 13 do C[T]:=0;
     for a1:=0 to 9 do    { ॡࠥ  }
       for a2:=0 to 9 do  {  a1 a2 a3 }
         for a3:=0 to 9 do
         begin
           T:=a1+a2+a3;
           C[T]:=C[T]+1   { 諨    }
         end;             {  㬬 T }
     for T:=0 to 13 do    { ⠥ ᫮ ⮢ }
       Count:=Count+C[T]*C[T];
     Count:=Count*2;      { 㤢 㬬 }
      ⮣ ⬠ 10^3.
     ⮤ 4.  ⮤ 3  ॡࠫ 樨   ᪠ -
⢮ 権  㬬 C[T].      㬬 T, 
  㤥 ।,   ⢮ 権 a1 a2  a3  
. ⠪ T=a1+a2+a3.
     쭮 祭,  ஥    ਭ  a1,  -  
max{0,T-18}.   T-18   ᫥ ᮮࠦ: 
a2=a3=9, ⮣ a1=T-18,  a1     0. ᨬ쭮
祭 a1=min{9,T} (⠪  a2  a3 ⥫,   a1<=T  
६ a1<=9).
       a2 筮 砥,     । 
                  max{0,T-a1-9}  min{9,T-a1}.
      a3  T, a1  a2 । 筮.
     砥,   権 a1 a2 a3  㬬 T   ࢮ -
ன  a1  ⮫쪮  ,  ᪮쪮       a2,      
                   min{9,T-a1}-max{0,T-a1-9}+1.
   ⮤ 3   ᬠਢ  㬬 T  0  13.
     Count:=0;
     for T:=0 to 13 do
     begin
       CT:=0;
       for a1:=max(0,T-18) to min(9,T) do
         CT:=CT+min(9,T-a1)-max(0,T-a1-9)+1;
       Count:=Count+CT*CT
     end;
     Count:=Count*2;
      ⮣  ⬠  (..  ⢮  믮
権 ᢠ    横)  95.

                             3.
         祢 襭, ஥ ⮨  -
樨    2N-ࠧ來  ᥫ    ஢થ       ॡ㥬
᢮⢮.   饥 ⢮ ⠪ ᥫ ࠢ 10^(2N)  -
⮬  N>3 ࠪ᪨ 祭 㤭   १    .
⥫쭮 室 ࠧࠡ ,  ॡ騩 -
樨 ᥫ.
     । १ S(k,i) ⢮  k-ࠧ來  ᥫ,  㬬
   ࠢ i.  ਬ,  S(2,3)=4,  ⠪   4
ࠧ來 ᫠ (03,12,21,30), 㬬   ࠢ 3. -
 ,  S(1,i)=1  i<10  S(1,i)=0  i>9. ।
⥯,   㬥 ᫨ 祭 稭 S(N,i)   i
 0  9N,  ..   , ᪮쪮  N-ࠧ來 ᥫ 
㬬 ,  ࠢ 0,1,...,9N ( 9N - ᨬ쭠  㬬    
N-ࠧ來 ᫥).   㤭 㡥,  饥 ⢮
"⫨" 2N-ࠧ來 ᥫ ࠢ
                P=S(N,0)^2+S(N,1)^2+...+S(N,9N)^2.
     ⢨⥫쭮, 㦤    ⮤ 3,  "⫨"
2N-ࠧ來 ᫮   祭 ᪫    ந
N-ࠧ來 ᥫ   㬬 .
      ࠧ,  室 㬥    祭  稭
S(k,i)     k<=N,i<=9k.  । ᯮᮡ ᫥ S(k+1,i)
१ 祭 稭 S(k,j), j<=i. ⭮,   k+1-ࠧ-
 ᫮   祭  k-ࠧ來   -
 ࠧ鸞 (). ⥫쭮
               S(k+1,i) = S(k,i-1)+S(k,i-2)+...,
 1,2,... -   . ᭮,   0,1,...,m
 m=min(9,i). ⥫쭮,
           S(k+1,i) = S(k,i-0)+S(k,i-1)+...+ S(k,i-m).
                                                              
                             3.2.
     ᯮ㥬 ⮤ 襭  3.
     襭 3.2b. 稬  ⢮ m(k,n). ᫥ -
 ᫠  m-筮 ⥬ ᫥  ਭ   -
 0, 1, ..., m-1.  ᮮ⢥⢨  ⨬ 㬬  (n-1)-筮
᫠,      n-筮  ᫠ 뢠 ᫥
,   ਭ   祭 k, k-1, ..., k-m+1. 
砥, 
               Cm(k,n)=Cm(k,n-1)+...+Cm(k-m+1,n-1).
     ஬ ⮣ Cm(k,1)=1  0<=k<=m-1,  Cm(k,1)=0  ( m--
 ⥬  ᫥    ⮫쪮  筮 ᫮ 
㬬   k, 0<=k<=m-1,    ⠪ ᫠, ᫨ k>=m.

                             4.
     祢 襭  । ࠧ ᫠  N  
ᥢ  㬬 ⠪ ࠧ,  ⮡  ᫠  㬬
 ॢ室 k.  祢,   ⠪ ࠧ  祭  ,
ᮡ ᫨ 뢠,  冷 ᫠  ࠧ ⢥-
,  ⠪   ᮮ⢥ ࠧ筮 ᫥⥫쭮  室
誨.
     稬 १ S(i) ⢮ ࠧ ⥩,    
誠  ன   砫  樨  ஬ i.  ।-
 ⥯,    j  1  i  祭 稭
S(j).    ⮨    । ࠢ ᫥ 祭
S(i+1),  ᯮ 祭  稭.  , 
      ஬  i+1  誠        権 i,
i-1,...,i-k. ⥫쭮,
                  S(i+1)=S(i)+S(i-1)+...+S(i-k).
      ࠧ,    ᫥⥫쭮  祭   稭
S(1), S(2),  ..., S(N)  ᠭ  ࠢ, 砥 -
 S(N), ஥  㪠뢠 饥 ⢮ ࠧ ⥩, 
 誠  ன   砫  樨  ஬ N.

                             5.
     ᫨ 㯠⥫ ⤠  ᢮  த,   ⭮,
  襭 室  ࠧ 쭮 ᤠ,  
த   , ᯮ  騥 ⥯  
 C[i] (  㯠⥫).  ⮣ 㤮 ஢ -
 ᮣ᭮  ⮨⢠  浪 뢠.
     ।,   த     ᤠ  1 
S, ᯮ ⮫쪮 訥 i .  ᫥饩 (i+1)- 
⮨⢠ C[i+1]  2 樨.
    1. C[i+1]<S+2.  ⭮,  த   
ᤠ  1  C[i+1]+S,  ..     㬬 ।⠢ 
묨 i ࠬ,   (i+1)- ன   묨  
 i .
    2. C[i+1]>S+1.   ⭮,   த    
ᤠ S+1.
     襬 楤 ᫥ S.
             S:=0;
             i:=1;
              (i<=N)  (C[i]<=S+1)
             
               S:=S+C[i];
               i:=i+1
             
     ᫨ 祭 S   㬬୮ ⢠  㯠-
⥫,    㯠⥫  㯨 ⮢  㯭  ⮨-
, 筮 ⠢  㯪.  P=A[1]+...+A[N]-S.

                             6.
     蠥 筮  5.

                             7.
     ᫨ S>H(1)+...+H(n),   㬬 믫 .
     ᫨ 㯠⥫ ⤠  ᢮  த,   ⭮,
  襭 室   ।,   த
 㬬 H(1)+...+H(n)+B(1)+...+B(l)-S, ᯮ  -
騥  ⥯       M[i] (  㯠⥫).   ⮣
㤮 ஢  ᮣ᭮  ⮨⢠  浪 -
뢠.
      P=M[1]+M[2]+ ... +M[n+l].
     訬    :   ।⠢ -
묨 ࠬ 㬬  ஬⪥  0  P.
      ᨢ A[0 .. P]  ࠫ  ᥫ.  A[i]=1,
᫨   믫 㬬 i (..     -
୮ ⮨⢠ i),  A[i]=0 .
     㤥 ந  ᥢ 㬬,  ᯮ ᫥⥫쭮
0,1,2,...,N .
     祢,  㬬    -  , ⮬ ᭠砫
A[0]=1.
     ।,    諨 ᥢ 㬬,   
⠢, ᯮ   (k-1) -   M[1], ..., M[K-1].
    M[k].
        믫 ᫥騥 㬬:
     1)   㬬,     뫮 ⠢   
M[1], ... , M[K-1].
     2)   㬬,     뫮 ⠢   
M[1], ... , M[K-1], 㢥祭  M[K].
     ⠭  ⮪  ᨢ A  룫拉 ᫥-
騬 ࠧ:
     for i:=P-M[K] downto 0 do
       if A[i]=1
       then A[i+M[K]]:=1;
      室  ᨢ  ࠢ      ⮣,  ⮡  
ᯮ짮 ୮  ࠧ   蠣 㬬.
     ᫥ 믮 n+l 蠣  稢 ࠡ.
     ᫨ ⭮,  H(1)+...+H(n)+B(1)+...+B(l)-S  ॢ-
 ன ⠭ D,   ⮣ ᨢ A    
 P,   D ⮢.

                             8.
     蠥 筮  7.    ⮬  筮  
ᨢ
var A,  KOL,  PredSum, B: array [0..P] of byte;
     祭 ᨢ  A  -    ।饩 .  ᨢ 
㦨  ६ ࠭ । 㬬.   KOL[i] 
PredSum[i] 㪠뢠 ᮮ⢥⢥ 쭮 ⢮ -
⮢,    祭 㬬  祭  i    ।
㬬,  ன 뫠 祭   ᫠ -
 i.  ନ஢  ᨢ ⢫ ࠫ쭮  -
 ᨢ . 砫
    A[0]=1, A[i]=0   i>0,
    KOL[0]=0, KOL[i]=254,   i>0, (⠥,  ᫨
              KOL[i]=254,  㬬 i  ),
    PredSum[i]=0   i>0;

 for i:=1 to N do  { 横  ᥬ ࠬ }
  begin
   for j:=M[i] to P { 横  ᥬ  㬬  ⨥
                       M[i] }
     if (A[j-M[i]]<>0) and      { ᫨   㬬 j-M[i]  }
        (KOL[j]>KOL[j-M[i]]+1)  {    M[i]  - }
                                { 砥 㬬 j  襣 - }
                                { ⢠                      }
     then begin
            KOL[j]:=KOL[j-M[i]]+1 {     - }
                                  { ⢮   B[j] ᨬ  }
            B[j]:=j-M[i];         { ଠ  ।饩 㬬 }
            A[j]:=1;              {  砥,  㬬 j -  }
                                  {                      }
          end
     else B[i]:=PredSum[j];   {  㡫㥬  ଠ }
   for j:=M[i] to P do   { 㡫㥬 ଠ  B }
     PredSum[j]:=B[j];   {  PredSum                 }
  end;

     祬     ।⢥ 뢠  ଠ-
  ।饩 㬬  ᨢ PredSum?    ,  
ᨢ A  KOL 㡫  㣠.    ࠣ
ணࠬ, ꥤ 㭪樨 ᨢ A  KOL   ᨢ A.
     ᫥ 襭 ࠡ ।饣 ࠣ ᫨ A[S]=1, 
㬬 S     KOL[S] . । 㬬 (
 ᫥  )  뫠 S'= PredSum[S],  ᫥⥫쭮
᫥   S-PredSum[S].  筮 믨뢠 ,
ॡ㥬  ।⠢ 㬬 S' (ᯮ PredSum[S']).

                             9.
     祢 襭    ⮨   ᯮ짮 ன
楤,     न⠬ ( ப i  -
  ⮫ j)  । ᨬ쭮 祭 -
⮢, ᯮ  㦭   A.
      㤭  ,    ⮢ ࢮ ⮫
  ࠢ  ᮮ⭮襭  B[i,1]=A[i,1],  i=1,...N.  -
᫥  㣨 ⮫殢  ஢ ᫥騬 ࠧ:
      B[i,j]=max(A[i,j], B[i-1,j-1], B[i,j-1], B[i+1,j-1]).
      ⮬  室 뢠,    ⮢ 
室  । ࠭ ᨢ.

                             10.
       a[i,j]  㤥      ᨬ쭮
஭   ,   ண  (i,j)  孨
 㣮 (祢,   ᫨  a[i,j]=0,      ந
).
      A 㤥 ᬠਢ  ப ࠢ , ᭨
.
     ।,  ⥪騩 ᬠਢ  a[i,j]  (
,  騥  ப  ࠬ  i,  ࠢ   
 ப i ࠢ a[i,j]    㦥    ⮬  
ᬮ७묨).
     ᫨  a[i,j]=0,   祭 ⠥ 㫥. ᫨
 a[i,j]=1,   ⮣, ⮡  ᨬ ࠧ 
 ,   ண (i,j) - 孨  㣮,  ஠㥬
㦥 ᬮ७  a[i,j+1],  a[i+1,j+1], a[i+1,j] - ᮮ-
⢥  ஭ ᨬ ⮢   㣫 -
,         .  
孨  㣫 (i,j)   ࠢ     祬
 a[i+1,j]+1,  -   祬  a[i,j+1]+1    -
  祬  a[i+1,j+1]+1. ⥫쭮, ᨬ쭠 ஭
 
     a[i,j]=min{a[i,j+1],a[i+1,j],a[i+1,j+1]}+1.
     ணࠬ:
     MaxDim:=0;     { ⥪ ᨬ쭠  ஭ }
     for i:=n-1 downto 1 do
       for j:=m-1 downto 1 do
         if a[i,j]<>0
         then begin
           a[i,j]:=min(a[i,j+1],a[i+1,j+1],a[i+1,j])+1;
           if a[i,j]>MaxDim
           then a[i,j]:=MaxDim
         end;
     writeln('ᨬ쭠  ஭= ',MaxDim);

                             11.
      孨  㣮    (1,1).
     㤥     ப i ନ஢  p[1..M] ⠪,
 p[j]  ᫮ ᫥⥫  ⮢  ⮫
j,  稭      (i,j)    .   ࠧ,  ᫨
p[j]=0,  A[i,j]=0,  ᫨ p[j]=u>0, 
     A[i,j]=A[i,j+1]= ... =A[i,j-u+1]=1,
  A[i,j-u] 㫥 (᫨,  筮,  ⠪    
, .. ᫨ j-u>0).
      頤  (㬬  ⮢)  筮  אַ㣮쭨
S_i(L,R)   ࠢ   㣫   (i,R)  (i,L)
ᮮ⢥⢥  頤 ᭮ (R-L+1) 㬭  
⮣ אַ㣮쭨
    h(L,R)=쭮 p[i]  ᥬ j, 騬  L  R.
   ப  i      ᨬ 稭 S_i(L,R) 
1<=L<=R<=M,  ᨬ  ᥬ ப   ᪮ 稭.
     祢,   ࢮ ப
     p[j]=A[1,j].
     ᫨      l  ப i,     ᫨
  ப (i+1)  ᫥饩 㫥
     if A[i+1,j]=0 then p[j]:=0
                   else p[j]:=p[j]+1;
      ⪮      ⠪:
                     p[j]:=(p[j]+1)*A[i+1,j];
     㤥 ᬠਢ  p, ᮮ⢥騩 ப i,  
  j,  1<=j<=M, । ᨬ ࠧ -
 אַ㣮쭨  ⮩ p(j),  ᯮ饣  ⮫ 
ࠬ  L(j)  R(j), L(j)<=j<=R(j),  ࠭ ண -
ப  i.  祢,   L(j)  㢥祭   
ࢮ 襣 祬 p[j]   p   ᬮ  p  
j-    ,   L(j)=1,  ᫨ ⠪ 襣 
. 筮, R(j)  㬥襭  1  ࢮ -
  祬  p[j]    p  ᬮ p  j- 
ࠢ,  R(j)=M, ᫨ ⠪  .
       ᫨ L(j)  R(j)?  ᯮ  8 
" "     L  R   室  -
 p:
     㤥  ᨢ R.  p ᬠਢ ᫥ -
.  ࣠㥬  ⥪  権 ⮢.    ⥪饣
p[j] 㤥 ⠫  ⥪  樨,    -
 訥 ⥪饣,    ᮮ⢥騥 ⨬ 
 ᨢ R ᫮ (j-1).   ⥪饣  j -
  ⥪.  ᫥ ᬮ  ⮢  ⥪  -
  権 ᨢ R,    室  ᫮
M.
     var Stack: array [0..M] of byte;
       . . .
       S[0]:=0; { ⥪ , S[0]  㪠⥫  ᫥
                  饭  ⥪ }
       for j:=1 to M do
       begin
         while p[j]<p[S[S[0]]] do
           { S[0] --   ᫥ ⮩ 樨  ⥪,}
           {  ன 室 ᫮ S[S[0]] -   }
           { ᨢ p,  ᠬ   --  p[S[S[0]]]      }
         begin
           R[S[S[0]]]:=j-1; {  ᨢ p  ᮬ
                            S[S[0]] 諨 न ࠢ ⥭}
           S[0]:=S[0]-1;    {    ⥪ }
         end;
         S[0]:=S[0]+1;      {  -  ⥪ }
         S[S[0]]:=j;
       end;
       for j:=1 to S[0] do R[S[S[0]]]:=M;

       ᨢ L 室  த      ᠬ
樨,   p 㤥 ᬠਢ ࠢ :
       . . .
       S[0]:=0; { ⥪ , S[0]  㪠⥫  ᫥
                  饭  ⥪ }
       for j:=M downto 1 do
       begin
         while p[j]<p[S[S[0]]] do
         begin
           L[S[S[0]]]:=j+1; {  ᨢ p  ᮬ
                             S[S[0]] 諨 न  ⥭}
           S[0]:=S[0]-1;    {    ⥪ }
         end;
         S[0]:=S[0]+1;      {  -  ⥪ }
         S[S[0]]:=j;
       end;
       for j:=1 to S[0] do L[S[S[0]]]:=1;

     ᫥,  ⠥ ᤥ -        室  -
᫨ ᨬ  ᥬ j ࠦ
     p[j]*(R[j]-L[j]+1).
      ᨬ    ࠧ  ᨬ쭮 筮 אַ-
쭨   ࠭  ப i.
     ᨬ  ᥬ i   襭.
      ⬠ O(N*M),  .. ⢮ 樨 
  ᫠ ⮢  A!

                             12.
     㥬  㭪⮢ a)  c)  16 ( "஢
 ᫥⥫쭮").   C[i,j] ᨢ C  ᫥-
 㬬
                   C[i,j]=A[1,j]+ ... +A[i,j].
     ६ MaxSoFar    ᠬ 祭,   ࠭-
,  MaxFndingHere  ᨬ쭮 祭 㬬 ⮢ -
㣮쭮   ࠢ  㣫 (i,j)   k.

     MaxSoFar:=A[1,1];
     for i:=1 to M do begin
       MaxEndingHere:=0;
       for k:=1 to i do
         for j:=1 to N do begin
           { ᬮਬ,  ந  ᨬ 祭 㬬
             ⮢ אַ㣮쭮   ࠢ  -
              (i-1,j)   k  ਯ뢠  ⮩ -
              । i- ⮫  㬬 C[i,j]-C[i-k,j].
           }
           MaxEndingHere:=max(MaxEndingHere+C[i,j]-C[i-k,j],
                              C[i,j]-C[i-k,j]);
           MaxSoFar:=max(MaxSoFar, MaxEndingHere);
         end
     end;

                           13.
      襭  㭪  1   筮 ᯮ짮
⥬ 䠪⮬,    । 쭮 稭  ,
    室    i-⮩ ப 筮 
 稭 ,     室    ⪨
(i-1)-⮩  ப,    ᥤ ᬠਢ
⪥. ⮬  襭 㭪 1 ᫥騩:
     i  1  n
     [i,1]:=A[i,1]
     i  2  n
      j  1  m
     
       [i,j]:=[i-1,j]+A[i,j];
       ᫨ j>1  [i,j] < [i-1,j-1]+A[i,j];
            [i,j]:=[i-1,j-1]+A[i,j];
       ᫨ j<m  [i,j] < [i-1,j+1]+A[i,j];
            [i,j]:=[i-1,j+1]+A[i,j];
     
    襭  㭪  2    ᯮ짮   ⬮
  宦  쭮      '-
'.

                             14.
     ) 稬 設 N-㣮쭨 x(0),  ..., x(N-1)  浪
室  .   쭥襬 㤥 ,   ᫨    
몫  砥 設  ᮬ k,     ,   
設  ஬ k mod N (⮪   k  N).
     ᬮਬ 㪫 L-㣮쭨, 設 ண  L
᫥⥫ 設  N-㣮쭨,  稭  x(p)   
x(p+L-1) ( 浪 室  ).   ⮣ L-㣮쭨 㤥
,   १ (x(p),x(p+L-1)) -    .  㬬
 ⮩ 䨣 稬 S(p,p+L-1).
     祢,   ᫮ :
     S(p,p)=0; S(p,p+1)=0 ( 窨  १  ),
     S(p,p+2)=d(p,p+2)
( d(p,p+2) -  १ (x(p),x(p+2))).
     ।,    S(p,p+L-1)   p=0, ... ,N-1 
L=1,...k.
      S(p,p+k).
      ,   ࠧ k+1 㣮쭨  㣮쭨-
,   (x(p),x(p+k)) - , ..   ஭ -
㣮쭨.  ⠪,    䨪஢  設 㣮쭨 -
x(p)  x(p+k).  쥩 設        x(p+1),  
x(p+2),...,   x(p+k-1).  ᫨  ⠥,   設 -
 x(i),  㬬  㤥
     d(p,p+k) + S(p,i) + S(i,k).                               (1)
       㦥  S(p,i)  S(i,k) - ,  ।, -
 ᫥  । 蠣.  d(p,p+k) -  ﭨ 
設 x(p)  x(p+k),   ⮦  ᫨.
         쭠 㬬 ਠ樨 (ࠧ-
  㣮쭨),   饬 ࠦ (1)   -
祭
     S(p,p+k)=d(p,p+k)+ min{ S(p,i)+S(i,k)}                    (2)
                         i

      i=p+1,p+2,...,k-1.
     室 S(p,p+k)   p=0,...,N-1.
      S(p,p+N-2)  p=0,...,N-1,    ᪮ ਠ-
 (⢨⥫쭮,  S(p,p+N-2)    ⮨  ࠧ  䨣
᫥ ஢ N-3 ).
     )  ⠥ ⥬ ,   ᪫祭 ⮣,  
 (2)  ᯮ짮 ᫥:
     S(p,p+k)=min max {d(p,p+k),S(p,i),S(i,k)},
               i

 S(p,p+k)  -   ᨬ쭮   䨣  設
x(p),  x(p+1),  ...,x(p+k) (१ (x(p),x(p+k)) ⠥ -
).    ६    ᥬ  ࠧ 䨣,  
⮨ ࠧ ।  ᨬ      
d(p,p+k)   ᨬ  S(p,i)  S(i,k).

                             15.
     㤥 ,    ।  ⮢,  -
  - ⮨.
     稬 १ F[k,y] 稭  襩  㬬୮  ⮨-
 ⮢  ࠬ  訬 k, 㬬   
ॢ蠥 y.  ,      ᫨  祭  F[k+1,y],
ᯮ 稭  訬 祭ﬨ ᮢ.
     ⭮,  稭 F[k+1,y]  ᮮ⢥⢮ -
 ⮢,  ஥ ᮤন   ᮤন  k+1.  ᫨
⢮   ᮤন    k+1,    F[k+1,y]=F[k,y].  
F[k+1,y]=B[k+1]+F[k,y-[k+1]],  ..  ᨬ쭠 㬬ୠ ⮨-
  ⮨ k+1   ᨬ쭠 ⮨ -
⮢  ࠬ  訬 k, 㬬    ॢ-
 稭 y-[k+1].
      ࠧ,   ४७  ᫥ -
稭
            F[k+1,y]=max(F[k,y],B[k+1]+F[k,y-[k+1]]).
      ᫥⥫쭮     F,  뢠  
⮬,   F[0,y]=0   y,   F[j,0]   j,  稬
祭 F[N,A],    祭 ᨬ쭮 
⮨.
      ᭥ ஢ ⮢, 襤  ⢮, -
筮, 砢    ᠬ [i,y] ( 砫 ࠢ N
 A ᮮ⢥⢥),ࠢ   祭 F[i-1,y].  ᫨ -
祭 ࠢ,   i   室  ⢮,   -
    ᠬ [i-1,y].  砥 ࠢ⢠ -
⮢    i  室  ⢮,     
  ᠬ [i-1,y-C[i]].   믮   i
 N  1.

                             16.
      x=a(1)...a(m)    y=b(1)...b(n),  a(i)    b(i)  ᨬ,
1<=i<=m,  1<=j<=n,  d(x,y)  ᫨, ਬ ⮤ -
᪮ ணࠬ஢.
     । ᨢ d[0..m,0..n],  ண
      d[i,j] = d(a(1)...a(i), b(1)...b(j)), 0<=i<=m,0<=j<=n,
⠪ 
         d[0,j]=j;
         d[i,0]=i;
祢 ࠧ 砥
         d[i,j]=min{d[i-1,j]+1,d[i,j-1]+1,d[i-1,j-1]+Pij}
 Pij=1 ᫨ a(i)<>b(i)  Pij=0  ( ࠢ   ਢ-
   ࠦ ࢮ   min ᮮ⢥ 
㤠  ப  a(1)...a(i-1)a(i)  ᫥    a(i),
᫥ 祣  d[i-1,j]  ப a(1)...a(i-1) ८ࠧ
 ப b(1)...b(j),  ஬  -  ⠢ ᨬ
b(j)   ப b(1)...b(j-1), 祭  d[i,j-1] 
 ப a(1)...a(i),   쥬 - ⥪⭠  ai   bj,
  ⢫  砥 ai<>bj (⮣ Pij=1)   ந-
  ᮢ ai  bj).
     砥 室 d(x,y)=d[m,n].
        ᠭ ⠪:

     for i:=1 to m do
       d[i,0]:=i;
     for j:=1 to n do
       d[0,j]:=j;
     for i:=1 to m do
     for j:=1 to n do
          d[i,j]=min{d[i-1,j]+1,d[i,j-1]+1,d[i-1,j-1]+Pij};

                             17.
      筮  16.

                             18.
      ப S1 ⮨   0  1    N,  -
 S2 ( ᨬ A  B) -  M.
        ࠧ N  M,  ⮬ ப  -
 i- ன ப S1,  j- ⮫ - j- ᨬ -
 S2.
     쬥  ⢥ ਬ S1='00110', S2='AAAABBAA'.
     ࢠ  ப S1 ( 0)    ८ࠧ  
  ᫥⥫쭮⥩ 㪢 'A','AA','AAA','AAAA', 騥
䨪ᠬ ப S2. ᨬ ᨬ 'x'   ⮫ ࢮ -
, 㪢-⪨  ᮮ⢥ ᫥ 㪢 
᫥⥫쭮⥩.   ࠧ,     A[1,1],
A[1,2], A[1,3]  A[1,4].
      ⬠:  㤥 ८ࠧ뢠 ।   S1[i],
ன ᮮ⢥ ப i.
     室 'x'  ।饩 ப  ᬮ  ᫥ -
  (⮬ ⮫ ᮮ⢥ ᫥ 㪢  -  -
 ᫥⥫쭮⥩ 㪢,  ஦  ।饬 蠣).
᫨  ⥪   ८ࠧ  ᫥⥫쭮 㪢,
 ᫥騥   ⮫,     ⮫  -
 ப ⠢ 'x'.
         ᫥ 祭 祩 饬  ।-
饩 ப 'x' ,  室, 塞 㪠  -
樨.
      ⢨ ஢   i=2,...,N.
       ᫥ N 蠣:

     A A A A B B A A       ᫨  ᫥  N  蠣   樨 (N,M)
    Ŀ      ⮨ x,  ப  ८ࠧ-
  0 x x x x                 㣠.
  0   x x x        
  1     x x x x    
  1       x x x x x
  0             x x
    

     砭:     ᨢ.   ᠬ -
,   ᫥饩 ப  頥 ⮫쪮  -
⠬ ।饩 ப,   -   ࠧ.
      (  砭)   ᫥騬:

     for i:=1 to N do
       for j:=1 to M do
         A[i,j]:=' ';                            { 樠 }
     if S1[1]=0
     then element:='A'             { 0 ८ࠧ  A }
     else element:=S2[1];          { 1 -  A    B }
     i:=1;
     while (i<=M) and (S2[i]=element) do begin   {  蠣 }
       A[1,i]:='x';
       i:=i+1
     end;
     for i:=2 to N do begin
        j:=2;
      while j<M do begin                   { ᬮ ப i }
        if A[i-1,j-1]='x'
        then begin
          if S1[i]=0
          then element:='A'
          else element:=S2[j];
          if S2[j]=element
          then
            while (j<=M) and (S2[j]=element) do begin
              A[i,j]:='x';
              j:=j+1;
            end       { end for while }
          else j:=j+1
        end           { end for then  }
        else j:=j+1
      end             { end for while }
     end;             { end for for   }
   if A[N,M]='x'
   then writeln(' ८ࠧ')
   else writeln(' ८ࠧ');

      ணࠬ, ᯮ  ᨢ.

                             19.
     । १ F[i,j] 쭮  ᫮  権,  ஥
ॡ    ६  㯯     ࠬ  i  j
⥫쭮.  ᭮,   F[i,i]=0.  ६     ⠪
㯯  ந ࠧ묨 ᯮᮡ,   , ந-
 ᭠砫 ६ 訬 ᯮᮡ 㯯  i    k,
⥬  k+1  j,   ६ 稢訥 .  -
⭮,  k   稭  i  j-1. 뢠 ॡ
 訩 १, 稭 F[i,j] । 
          F[i,j]=max(F[i,k]+F[k+1,j]+n[i]*n[k+1]*m[j]),
 k   稭  i  j-1, n[i], n[k+1], m[j] ।-
 ࠧ , 稢  ६  㯯.

       i  1  N 믮
        F[i,i]:=0;
       l  1  N-1 믮
         i  1  N-l 믮
       
         Kol:=᪮筮;
         j:=i+l;
           k  i  j-1 믮
          ᫨ Kol > F[i,k]+F[k+1,j]+n[i]*n[k+1]*m[j]
              Kol:=F[i,k]+F[k+1,j]+n[i]*n[k+1]*m[j];
          
         F[i,j]:=Kol;
       

                             20.
     ).  (L,i) 砥 ⢮   ᫥-
⥫쭮⥩  L,  ⠢  ⮢  ࠬ  1 
i-1. ⭮,     祭 .   ᫮  -
⢥ ᮪,  ᯮ짮 ᫥騬 䠪⮬:   楯-
祪  L  ᯥ⨢ 㤥 楯窠,  ன 稭 -
    ,  ⠪     த 襥 ᫮
⮢.  S(L,i) -   ⠪ ᠬ ᯥ⨢ 楯窠
  L     稭 ᫥ ⮬,   S(i) - 
⢮  楯祪 S(L,i)  ᥢ묨 L.  ⭮,   S(i)
ᮤন   i-1 楯祪 (  1,...,i-1).    
S(i).
      ⮣,  ⮡ ।,  楯窨  த i-
,  筮  ᫥  ᯥ⨢ 楯祪.
  ⮣  㤮    ᨢ  ᮢ  ᫥ ⮢
ᯥ⨢ 楯祪  1,2,...,n.   ⮬   ,  
᫥  ᯥ⨢ 楯窨  s  ॢ蠥 ᫥-
  ᯥ⨢ 楯窨   s+1.  ⥫쭮,  
।  i-  筮  ⮫쪮 ᨬ 
ᯥ⨢ 楯窨,   ன  㤥 ᫥. ⭮, 
  㤥  楯窠  ᨬ쭮  ,  ᫥  ன
 ⥪饣 . 뢠 㯮冷祭 ᫥ -
⮢  ᯥ⨢  楯祪,      ᤥ ⮬.  
ᮥ i-   - 楯窥  p   
㢥稢   1,  a  ᫥ ⮬ ⠭  i.
 ⮬ ⢮ S(i+1) ᮢ  S(i)  ᪫祭   -
窨
          S(p+1,i+1) = S(p,i) 楯  i- ⮬.
      ࠭ 楯祪 㤮 ࠭     
,   ।  楯窥.

     㣮 襭 ⮩ :
      3  ᨢ   N:   ᨢ A[1..N]  ᠬ
᫠ ᫥⥫쭮.   B[i]  祭   -
쭮 饩 ᫥⥫쭮,  饩 ⮬
A[i],  稭 C[i]   ।饣  A[i] -
    ⮩  ᨬ쭮  ᫥⥫쭮 (A[i]=0  ⠪
 ).
     ᫨ N=1,    A[1]    ᪮ ᫥⥫쭮.  
⮬ B[1]=1,  C[1]=0.  ।,    ᨢ A,B  C
  砫      M-1.  ⠥  ࠡ  A[M].
ᬠਢ ᨢ A  1  M-1-    饬  ⠪  A[k],
 ६
     1) A[k]<A[M],
     2) B[k] ᨬ쭮.
     祢,   ⮣,  ⮡  ᨬ    
᫥⥫쭮,  稢 A[M],    -
  ᫥⥫쭮  ᫥ ⮬ A[K]. 砥,
 B[M]=B[K]+1, C[M]=K.
       ࠡ⠫  N ⮢ ᨢ A.  室  -
  ᨢ B,    㤥 B[K].   ஥ 
 ᨬ쭮 ᫥⥫쭮.
     믨뢠  ᫥⥫쭮:   j:=k;  ⠥
 A[j];  ⠪  ।騩   ᫥⥫쭮  
    C[j],    ᢠ j:=C[j],  ᯥ뢠
   ..,    ,   j  ⠭ 0 (..  諨
 砫 ᫥⥫쭮).
      ⬠:
     for i:=2 to N do B[i]:=0;
       C[1]:=0; B[1]:=1; Max:=1; IndexMax:=1;
     for i:=2 to N do
       for j:=1 to i-1 do
         if (A[j]<A[i]) AND (B[i]<B[j]+1)
         then begin
                C[i]:=j;
                B[i]:=B[j]+1;
                if B[i]>Max
                then begin Max:=B[i]
                           IndexMax:=i
                     end;
     while IndexMax<>0 do begin
       writeln(A[Index-Max]);
       IndexMax:=C[IndexMax]
     end;
      ணࠬ  ६ Max ࠭ ᨬ쭠  
   ᫥⥫쭮,    IndexMax  室  
᫥  ⮩ ᫥⥫쭮.
      ,   ன (  砥 A[i])
ᮤন  뫪  (  ⮩   C[i])  ।騩  (,
᫨ ॡ,   ᫥騩 ) 뢠 ࠢ
ᯨ᪮.  ᫨      뫪   ।騩,  ⠪  
᫥騩   ,  ᯨ᮪ 㭠ࠢ (  -
, ᯮ   ᨢ  ᮢ,  ).
     ).  砩 㭪 ).
     ).     [0..m+1,1..n].    i- ப 㤥
࠭ ଠ  ᫥⥫쭮  i-1 ࠧ뢠;  j- -
    ⮩  ப   ᠬ  ᫥⥫쭮
⮢ "墮" ᨢ  (  j-    n-),  稭-
饩  j- 樨     祬 i-1 ࠧ뢮.
     ࠢ  :
      㫥 ப ﬨ (⮡  뫮  -
 ப  饬 ).
          ப  i   1  m+1 믮 ᫥騥
⢨:
      j-    ᨢ  A (j   n  1) 室
ᨬ   ᫥⥫쭮,   ᮥ-
  ⮬  ⠪, ⮡  ᫥⥫쭮 -
ᨬ쭮     祬 i-1 ࠧ뢮.  ⮣ :
     1) 饬  A[k] ᫥⥫쭮 A,  訩 A[j], -
騩  ᨢ A ࠢ j-    ᨬ [i,k];
     2) ⥬ ᬠਢ  i-1 - ப  , -
  j+1 -   ,  室 C[i-1,s] - ᨬ  ;
     3) ࠢ C[i-1,s]  [i,k].  訩   (稬 
C[row,col]), 㢥祭  1,   C[i,j].   㤥 -
 ᨬ쭮 ᫥⥫쭮,  稭饩  樨 j,  
  祬 i-1 ࠧ뢮.
     4)   row  col  ᨢ C, ।-
饣 C[i,j],  祩 X[i,j]  Y[i,j] ᮮ⢥⢥.

     ᫥ 砭 横 ᨬ  m+1 - ப  -
  C   ᨬ쭠  饩 ᫥⥫쭮
 m ࠧ뢠.  믨  ᫥⥫쭮    ᫥騬
ࠧ:    ᫥⥫쭮  ᨢ X  Y
࠭ ଠ  ।⢥.  ,  稭  ᨬ쭮
 m+1 - ப  C, ⠭  ᫥-
⥫쭮.

     ᭮ ⬠:
          C[i-1,j]   j  1  n   ண
i,  ⠪ C[i,k]  k  j+1  n.  ⨬ ᫨ C[i,j].
      j-    ᨢ    ᨬ쭠  
᫥⥫쭮    祬 i-1 - ࠧ뢮,  稭
  A[j].  ன  (稬  A[k]) ⮩ ᨬ쭮 -
᫥⥫쭮 (᫨ , 筮, )  
     1) ,  祬 A[j].   室  । ⮢, -
 ᫥騬 ᢮⢠:
       ) k>j,
       ) C[i,k] ᨬ (..   ᮥ塞   A[j]  -
    ᫥⥫쭮    祬 i-1 ࠧ뢮,
ନ ᫥⥫쭮    祬  i-1 ࠧ뢮);
     2)   ࠢ, 祬 A[j].   饬  । -
⮢,  ᫥騬 ᢮⢠:
       ) k>j;
       ) C[i-1,k] ᨬ (..   ᮥ塞  ᨬ
᫥⥫쭮       祬 i-2 - ࠧ뢠,  ନ
᫥⥫쭮    祬 i-1 ࠧ뢮).
     祭 ᫥⥫쭮 砥 ᨬ쭮 ,
⠪   ᫥⥫쭮, 稭  A[k], ᨬ쭠.
     訥     row  col,    
X[i,j]  Y[i,j] ᮮ⢥⢥, 
     col -  ᫥饣  A[j]   ᨬ쭮  -
 ᫥⥫쭮,  稭饩  樨 j  饩  -
 i-1 ࠧ뢠;
     row-1 - ᨬ쭮 ⢮ ࠧ뢮  ᫥⥫쭮-
, 稭饩  A[col].

{ ணࠬ ᠭ .  .ਫ }
const max=100;           { ᨬ쭠  ᨢ A }
var
  sw,l,i,j,k,n,m,maxind,swind:integer;
  c:array [0..max,1..max] of integer;
  x,y:array [1..max,1..max] of integer;
  a,b:array [1..max] of integer;
begin
  Write(' N:');
  readln(n);
  Writeln(' ᫥⥫쭮');
  for i:=1 to n do
    read(a[i]);
  readln;
  Write(' ⢮ ࠧ뢮 ᫥⥫쭮:');
  readln(m);
  fillchar(c,sizeof(c),0);  { 㫥 , x  y }
  fillchar(x,sizeof(x),0);
  fillchar(y,sizeof(y),0);
  for i:=1 to m+1 do
    for j:=n downto 1 do
      begin
        c[i,j]:=1;
        for k:=j+1 to n do
          if (a[k]>a[j]) and (c[i,k]>=c[i,j]) then
            begin
              c[i,j]:=c[i,k]+1;
              x[i,j]:=k;
              y[i,j]:=i;
            end;
        for k:=j+1 to n do
          if c[i-1,k]>=c[i,j] then
            begin
              c[i,j]:=c[i-1,k]+1;
              x[i,j]:=k;
              y[i,j]:=i-1;
            end;
      end;
  maxind:=1;
  for i:=1 to n do
    if c[m+1,i]>c[m+1,maxind] then
      maxind:=i;
  l:=c[m+1,maxind];
  j:=maxind;i:=m+1;k:=1;
  while (c[i,j]<>1) do
    begin
      b[k]:=j;        {  ᨢ b 믨뢠  ⮢ }
      inc(k);         { ᨬ쭮   ᫥⥫- }
      sw:=x[i,j];     {   אַ 浪 }
      i:=y[i,j];
      j:=sw;
    end;
  b[k]:=j;
  for i:=1 to k do write(a[b[i]],' ');
  writeln;
  writeln('=',l);
end.


                             21.
      襭    ᨢ  㤮  㯮冷  
᮫⭮  稭  ( 浪 뢠).  ᫨  ᨢ 
,  ࠢ 0,       㤥  ᫥  ⮬
᪮ ᫥⥫쭮,  ⮬   ஢.  
(i) 砥 ᨬ쭮 ⢮ ⮢,  ஥  
室    ன  ᫥⥫쭮  ॡ㥬 ᢮⢮,
᫥ ⮬ ன  i- .
     ⭮,   襬  ᮫⭮ 稭  -
祣   ।⢮   ,  ⮬ ()=0, 
 -  ࢮ 㫥 .
       ᫥饣   ஬ j, j=+1,...,N, -
室 । ᨬ쭮 ⢮ ⮢, ஥ -
  ।⢮ ᬠਢ ,  ⮬ ॡ㥬
᢮⢠.  ⭮,      ⢮  ᨬ  稭
(1),  (2),...,  (m),     ࠬ  p1,p2,...,pm,
<=p1<p2<...<pm<j  ⥫ﬨ   ஬ j. -
   ४७   ᫥ (j):
               (j) =  ((p1),(p2),...,(pm)).
     祭 (N),  ᫥  ᠭ  ࠢ,  -
।  ᨬ쭮  ⢮ ⮢,  ஥  -
  ன ᫥⥫쭮   ॡ㥬  ᢮⢮  (
     ᫥⥫쭮).
      ⮣,  ⮡ ⠭,    ࠧ  -
  ᫥⥫쭮,  筮    j -
    p1,p2,...,pm,   ஬  ⨣  ᨬ
 ᥫ  (p1),(p2),...,(pm).     । -
ࠫ쭮  ᫥ 祭 (j)  ஬ ᨢ,  -
 . ᯮ  ଠ,  ।  -
⮢ ᫥⥫쭮,  室   i    ᨬ
祭  (i)  ,    । ((i)),
  ,   ਤ  ࢮ  f ᫥⥫쭮
((f)=0).

                             22.
      , 筮,  ᫮ A 㬭 ᠬ  ᥡ n-1  ࠧ,  
 ⮣  믮 n-1  㬭. ᬮਬ ⮤,
ॡ騩 襣 ᫠ 㬭 (, ,  ᥣ  -
쭮 ᫮ 㬭).
     ᫨ n - ⭮,  n=2m  㤥  A^n, ᯮ ⮦-
⢮
          A^2m=(A^m)^2;
     ᫨  n=2m+1, 
          A^(2m+1)=(A^2m)*A=((A^m)^2)*A.
      ࠧ,  A  13 ⥯ 㤥 룫拉 ᫥-
騬 ࠧ:
  (A^13)=((A^6)^2)*A=(((A^3)^2)^2)*A=(((A*A*A)^2)^2)*A
      ᫥ ॡ 5 権 㬭.
     ᯮ   ⮤,     ⥯ n ॡ-
 浪 log2(n) 権 㬭.

     ணࠬ  ᪠  룫拉 ⠪:
      var A,N: integer;
      function power(N: integer): integer;
      begin
        if N>1
        then if odd(N)     { N ⭮? }
             then power:=SQR(power(N div 2))*A
             else power:=SQR(power(N div 2))
        else power:=A
      end;
      begin
        read(A,N);
        writeln(power(N));
      end;

         ᠬ  ॠ   㣮 (    
ਢ 뤥প   . "⢮ ணࠬ஢ 
", .2, .482):
      "襬 n  筮 ⥬ ᫥    ⮩ -
   "1" ன 㪢 SX,     "0" -  㪢
S, ᫥ 祣 ભ ࠩ   㪢 SX. , -
⠥ ᫥ ࠢ, ॢ頥  ࠢ ᫥ x**n, ᫨
㪢  "S"  ஢     ,  
㪢 "X" -   㬭  x.  ਬ,  ᫨ n=23, 
  ।⠢ 㤥 10111; ந ᫥⥫쭮
SX S SX SX SX, 㤠塞   砫  SX   ⮣ 砥
᫥饥 ࠢ ᫥:  S SX SX SX. ᭮ ⮬ ࠢ,
  " x  ,  ⥬ ᭮    ,
⥬ 㬭  x,   , 㬭  x,  
 ,  ,  㬭  x";   ⮬  ᫥⥫쭮
塞 x**2, x**4, x**5, x**10, x**11, x**22, x**23.
       " ⮤"  ᭮,  ᬮॢ ᫥-
⥫쭮 砥    室  ᫥ ⥫:  ᫨ "S"
஢   㬭  2,  "X" -  
ਡ 1   ᫨   1,     x,    ࠢ 
  ᮮ⢥⢨  ᢮⢠ 筮 ⥬ ᫥  ᫮
n".
      ਢ ⮤   쭮 ᫠ 権  㬭-
.   ᫥ x**23 ,    ⮤, -
ॡ 7 権 㬭.   ⢨⥫쭮    室
⮫쪮 6:
      x -> x**2 -> x**3 -> x**5 -> x**10 -> x**20 -> x**23.
       宦  쭮 ᫠ 権 (஬ -
 ॡ) ᥩ ⥭ (. ⠬   .).

                             23.
      z  ᨢ  N ⮢,  y -  M.   i=1 
j=1.  ६  z[i]  饬 쭮 k,  k>=j,  k<=M, ⠪
 y[k]=z[i] ( 室 । ᮢ騩 ᨬ  ப z
 y).   i=i+1  j=k+1.  塞     z[i]  
⠢襬 ᪥ ᫥⥫쭮 y. ᫮ 砭  ᪠:
     a) ᫨  i ⠫  N (..    ᨢ z -
  ᫥⥫쭮 ⮢ y), -  ⮣ z  -
 ન ⮢  y.
     ) ᫨    ⠢訬  ᪥ ᫥⥫쭮 y  
,  ᮢ饣  । z[i],  z  y  -
.

                             24.
      x=x1,x2, ... ,xm,  y=y1,y2, ... ,yn.
        A[0..m,0..n].    A[i,j]  㤥 
ᨬ쭮 饩 ᫥⥫쭮 y x1, ... ,xi  y y1, ...,
yj. 砫 A[i,0]=A[0,j]=0, i=0, ... ,m, j=0, ... ,n.
      xi=yj, ⮣ ॡ 㢥  ᨬ쭮 -
饩 ᫥⥫쭮 x1,  ... ,x[i-1]  y1, ... ,y[j-1]  1:
A[i,j]=A[i-1,j-1]+1, ᫨ xi=yj.
      砥, ᫨ xi<>yj, , 祢,
     A[i,j]=max{A[i-1,j],A[i,j-1],A[i-1,j-1]},
 ⠪  ᥣ A[i-1,j-1]<=A[i,j-1], 
     A[i,j]=max{A[i-1,j],A[i,j-1]}.
     稭 A[m,n]    ᨬ쭮 饩 ᫥-
⥫쭮.  ᠬ ᫥⥫쭮.  A[m,n]=d. -
  ᫥ ப ࠢ  饬 ᠬ   
⮩ ப  祭 d.       ⮫  
᪥   ⮫    ᮬ  祭
d.    A[i,j].   A[i-1,j-1] 易  ࠢ d-1, 
xi  yi -  ᫥ 騥 ᮢ騥   x  y.
     稭   A[i-1,j-1] 塞,    뫮  ᠭ
,         ,  室 ।᫥
ᮢ騩   x  y,  ..
     ணࠬ:
     for i:=0 to m do A[i,0]:=0;
     for j:=0 to n do A[0,j]:=0;
     for i:=1 to m do
       for j:=1 to n do
         if x[i]=y[i]
         then A[i,j]:=A[i-1,j-1]+1
         else A[i,j]:=max(A[i-1,j],A[i,j-1]);
     writeln(' ᫥⥫쭮 =',A[m,n]);
     d:=A[m,n]; i:=m; j:=n;
     while (d<>0) do begin
       while A[i,j-1]=d do j:=j-1;
       while A[i-1,j]=d do i:=i-1;
     write(' ᫥⥫쭮 ',d,'',x[i]);
     i:=i-1; j:=j-1; d:=d-1; { 室   ।- }
                        { 饣   ᫥⥫쭮 }
     end;

                             25.
      ᫥⥫쭮  x  y 塞   㫥.
᫨    ᫥⥫쭮⥩ ⠫ ⮩,   z=0. 
ࠩ     x   y  1.
     ᪠  祭 ᫥⥫쭮    
24 ( 祭 ᨬ쭮 z 室,  ⮡  
z 뫠 1  筠  z   ᨬ  ),    
⮬      A[i,j] -  ᫥⥫쭮,  室
࠭ 筮  ᠬ ᫥⥫쭮;  ᢮ -
  A[i,j]  ६  㤥     ᫥⥫쭮
ᨬ쭮 . ᫨ ⠪ ᪮쪮,  ६   ᫥-
⥫쭮   ᨬ 祭.  ⮬   23
 ⠪:
      S[0..m,0..n]  - ᨢ ப.   S[i,j] 㤥 ࠭
᫥⥫쭮,  ன A[i,j].
     for i:=0 to m do A[i,0]:=0;
     for j:=0 to n do A[j,0]:=0;
     for i:=0 to m do
       for j:=0 to n do S[i,j]:='';
     for i:=1 to m do
       for j:=1 to n do begin
         if x[i]=y[j]
         then begin A[i,j]:=A[i-1,j-1]+1;
                    S[i,j]:=S[i-1,j-1]+x[i];
              end;
         A[i,j]:=max(A[i,j],A[i-1,j],A[i,j-1]);
         S[i,j]:=max(S[i,j],S[i-1,j],S[i,j-1]);
     end;
     write(A[m,n],'- ',S[m,n]);
     ஡   ᨢ S[0..m,0..n],    -
 ᨢ S[0..n].

