                          .

                             1.
            N   ⨫ ᥣ K ࠧ
ᨬ,  ࠧ ⢮ X.
      襭    ⮨    ᫥⥫쭮 ᢮
 ᨬ s   ,   । ⢮ (s)
⮢,  ।  ,   ⮬ ᢮⢠ ࠭⨢
( (,b)  (b,) ᫥ (,)).  ⢫ ᫥騬 -
ࠧ:
     ࢮ砫쭮 ।,    ᨬ    ।-
   ᨬ, .. (s)=0   s.
      ᬮ ।  (x,y)  ᨬ  y  ᢠ
襥  祭 P(x)+1, P(y).
     祢,   ࢮ ᬮ    室 ᫥-
⥫쭮 ।  㯮冷祭 楯窨  2,  ..
騥  2 ⮢. ⮬   ⮢ 
   1.     ᫥ ᬮ஢ 室 ப
 ᪮쪮 ਠ⮢.
     1.  ந諮     ஢ ᨬ. ᫨
    ⮬  ᨬ ࠧ    ।    0  
   N-1,    㬥 ।  冷.  冷
   .
     2.  ண ᨬ ॢᨫ N-1.  ந諮 -
   ,    ஢ ࠭祭,  ..  ⢫ 横-
   ᪨. ⥫쭮 冷 ⨢稢.
      ,  ᫮ ᬮ஢  ॢ N.

     ਠ 2. ᬮਬ ᫥騩 ⮤:
      ᨢ
                    A: array [1..N,0..N] of byte

                     Cnt: array[1..N] of byte;
᭠砫 A[i,0]=0  Cnt[i]=0   i.
      । 2*N ᨬ,  ࠧ N ,   ஢ K ࠧ-
. ७㬥㥬   1  K. 㤥 ,   ⠢-
   ᨬ,   ᮮ⢥  ஢.
      i-   A 㤥   ,  -
 묨 ⠬     ⮬ i.  A[i,0] -
 ࠭ ⥪饥 ᫮  ⮢. ࠡ⪠  (i,j) -
 룫拉 ᫥騬 ࠧ:
     A[i,0]:=A[i,0]+1;  { ⢮ 㢥稫  1 }
     A[i,A[i,0]]:=j;      { ⠢塞 j  ࢮ ᢮  }
      nt[i]  㤥 ࠭ ᫮ ,     i -
   .
     ᫨  ᨬ  ७, ᯮ짮   ,
 믨  楯  浪 ।⢮,   ⮩ 楯-
    ᨬ s,  ண  ।饣  -
஬ ᮮ⢥ Cnt[s]=0.
       ᪮쪮 権:
     1.   ⢥ -- ᫥⥫쭮,   砫 -
窨. 뢠 s  楯窨  㡨ࠥ     -
⮬ s  ⢠ , ४  ⮬ ᨢ Cnt:
     for i:=1 to A[0,s] do
       nt[A[s,i]]:=Cnt[A[s,i]]-1;
     ᫥ 祣  饬  s,  ண  ।饣
 ஬ ᮮ⢥ Cnt[s]=0.
     2.  ⮢ ᪮쪮,  ᫥⥫쭮,   
। 冷 ।⢮ -- ⥬ .
     3.  ⮢  -- ᫥⥫쭮, ⥬ ⨢稢.

                              2.
      襭 ⮩  ᯮ㥬      'ᯨ᮪'.
  ᯨ᪠ 㪠뢠  ᫥騩    (㣨
᫮ -- ࠭ ଠ  ᯮ ᫥饣 ).
    a).  ᨢ A  N 祥 -     㣥.  -
  祥 A[i] ᥬ  饣 ᫥騬  i- 祫.
ࢮ砫쭮 A[i]=i+1,  i=1,...,.N-1, A[N]=1. 稭   ⥪-
饣 祫 (祫  ஬ IndTek,  ᠬ ᭠砫 IndTek=1)
㤥  室 - 뢠 M 祥,      ᪠
祫,     㣠.  ⮬ । -
 A  㤥 룫拉 ᫥騬 ࠧ:
    { IndTek --   祫,  ண 稭  }
     for i:=1 to M-1 do  { 뢠 M 祫, 稭  IndTek }
       begin
         IndPred:=IndTek;   {  IndPred ࠭塞  ⥪饣
                              祫  㣥 }
         IndTek:=A[IndTek]; {  塞  ᫥饣   }
       end;
     ᫥ 믮 ⮣ 横  ६  IndTek  㤥  
祫,  ஬ ⠭  (..   祫, 
 ),    ६ IndPred --  ।饣  
祫  㣥.
      祫  ஬ IndTek.   ⮣    
뫪 A[IndPred]  ।饣  祫 ⠪,  ⮡  㪠-
뢠   IndTek,    ᫥饣  IndTek, ..  A[IndTek], 
  M-⮣ 祫 筥  ᫥饣  㤠:
     A[IndPred]:=A[IndTek];
     IndTek:=A[IndTek];     {   砫쭮 祫 }
      襮ᠭ 樨  㤥    ,  
 㣥  ⠭  ⢥ 祫, ..   ,
 A[IndTek]  ⠭ ࠢ IndTek,   砥,  ᫥騬
 祫  ஬ IndTek   ᠬ.
       ࠣ ணࠬ 㤥 룫拉 ⠪:
  { 樠 ᨢ A }
  for i:=1 to N-1 do
    A[i]:=i+1;
  A[N]:=1;
  { IndTek --   祫,  ண 稭  }
  IndTek:=1;
  while  A[IndTek] <> IndTek do
    begin
     for i:=1 to M-1 do  { 뢠 M 祫, 稭  IndTek }
       begin
         IndPred:=IndTek;   {  IndPred ࠭塞  ⥪饣
                              祫  㣥 }
         IndTek:=A[IndTek]; {  塞  ᫥饣   }
       end;
     A[IndPred]:=A[IndTek];
     IndTek:=A[IndTek];     {   砫쭮 祫 }
    end;
  writeln(' ᫥ ⠢襣 祫 ',IndTek);

     襭 㭪 b).
     㤥 ,   祫  ஬ N+i --      ᠬ,
  祫  ஬ i.
     ।,     㭪 a),   砫   ࢮ-
 祫,  뢠  㣠 M-⮣,   ᫥ ⠢訩 
㣥 祫   K. 祢,  ᫨   砫  
ண 祫,    ᫥  ⠢訩  㣥 祫  
 K+1, ..., ᫨  j-,  K+j-1.
     ᫨  ⠢襣 祫 L,    ࠢ⢠ L=K+j-1 -
।塞  j ࢮ 祫 (᫨ j<=0,    j   j+N,
    ࠭,   祫  ஬ N+j --    ᠬ,
  祫  ஬ j).

                             3.
     㤥 ஢ ᫮ ᪨,  ⥬ ஭㬥㥬 -
稢  ⮪ ᫠  1  2^n, ᫥ 祣 ᯥ-
 ᫠,  ਯᠭ ࢮ, ன, ..., 2^n- ⪥ 室
᪨.
     砫 ᮧ 吝 ᯨ᮪,  騩  2^k  -
⮢.   next 㤥 㪠뢠   室騩  ,
  last -   室騩  .  孥 -
 last=0,    next=n+1,  n-饥 ᫮ ⮢.
砫  孥 ᪨ ࠢ n ⮢, ᫥ ࢮ
ᣨ   ⠭ n/2,  ᫥ ண -- n/4,   ..  
   孥 ᪨  cn ⮢.   
室 cn/2 ࠢ ⮢   cn/2 .  -
 ⨬ 横,   㤥  i  1  cn/2   
蠣  (cn-i+1)-  ⮢  i-,  ⮬ -
 ⮢  (cn-i+1)-      ⨢.
᫥  ᣨ cn 㬥蠥 .  த  
  cn>1.

     ணࠬ (ணࠬ   3  4 ᠭ .):

{$A-,B-,D-,E+,F-,I-,L-,N-,O-,R-,S-,V-}
{$M 65520,0,655360}

uses crt;
const
   maxk = 13; { ᨬ쭮 祭  k }
type
   input = record
              last,next,new : word;
           end;
var
   k,i,j,n,cn,half : word;
   m : array[1..1 shl maxk] of input;

Procedure concat(a,b : word);
var i,j,nj : word;
begin
   i:=a; while m[i].next<>n+1 do i:=m[i].next;
   j:=b; while m[j].next<>n+1 do j:=m[j].next;
   while j<>0 do
     begin
        nj:=m[j].last; m[i].next:=j; m[j].last:=i; i:=j; j:=nj;
     end;
   m[i].next:=n+1;
end;

begin
   Write('Enter k...');readln(k);
   n:=1 shl k; { ।  ᪨ }
   for i:=1 to n do{ 砫 祭 }
    with m[i] do
     begin
        last:=0;
        next:=n+1;
        new:=0;
     end;
   cn:=n;
   while cn>1 do {  ᪨ }
     begin
        half:=cn div 2;
        for i:=1 to half do concat(i,cn-i+1);
        cn:=half;
     end;
   j:=1;
   for i:=1 to n do { 㬥 ⮪ }
     begin
        m[j].new:=i; j:=m[j].next;
     end;
   for i:=1 to n do write(m[i].new:5);
   writeln;
end.

     ஡      ணࠬ,    
஢  ᪫뢠 ᪨   ⪨ 뤠  
.

                             4.
     襭 ⮩  筮 襭 ।饩    
ᣨ  ᪨   ⮩  ࠧ楩,    㤥 ।
ந  ᣨ:  ᭠砫 ࠢ    ,  
⥬   

{$A-,B-,D-,E+,F-,G-,I+,L-,N-,O-,R-,S-,V-,X-}
{$M 16384,0,655360}

uses crt;
const
   maxk = 6;
type
   input = record
              last1,last2,next1,next2,new : word;
           end;
var
   k,i,j,i1,i2,j1,j2,nj1,nj2,n,n1,cn,half : word;
   m : array[1..1 shl maxk,1..1 shl maxk] of input;

Procedure concat(a,b,c,d : word);
var i1,i2,j1,j2,nj1,nj2 : word;
begin
   i1:=a; i2:=b;
     while (m[i1,i2].next1<>n+1) and (m[i1,i2].next2<>n+1) do
       begin
          i1:=m[i1,i2].next1; i2:=m[i1,i2].next2;
       end;
   j1:=c; j2:=d;
     while (m[j1,j2].next1<>n+1) and (m[j1,j2].next2<>n+1) do
       begin
          j1:=m[j1,j2].next1; j2:=m[j1,j2].next2;
       end;
   while j1<>0 do
     begin
        nj2:=m[j1,j2].last2; nj1:=m[j1,j2].last1;
        m[i1,i2].next1:=j1; m[i1,i2].next2:=j2;
        m[j1,j2].last1:=i1; m[j1,j2].last2:=i2;
        i1:=j1; i2:=j2; j1:=nj1; j2:=nj2;
     end;
   m[i1,i2].next1:=n+1; m[i1,i2].next2:=n+1;
end;

begin
   Write(' k...');readln(k);
   n:=1 shl k; { । ᫠ ⮪   ப  ⮫ }
   n1:=n*n;    { । ᫠ ⮪                    }
   for i:=1 to n do
    for j:=1 to n do
    with m[i,j] do
     begin
        last1:=0; next1:=n+1;
        last2:=0; next2:=n+1;
        new:=0;
     end;
   cn:=n;
   while cn>1 do { ᣨ  }
     begin
        half:=cn div 2;
        for i:=1 to half do { ᣨ  ⨪ }
          for j:=1 to cn do concat(j,i,j,cn-i+1);
        for i:=1 to half do { ᣨ  ਧ⠫ }
          for j:=1 to half do concat(i,j,cn-i+1,j);
        cn:=half;
     end;
   j1:=1;j2:=1;
   for i:=1 to n1 do { 祭 ⪠   }
     begin
        m[j1,j2].new:=i;
        nj1:=m[j1,j2].next1; nj2:=m[j1,j2].next2;
        j1:=nj1; j2:=nj2;
     end;
   for i:=1 to n do { 뢮 १⮢ }
     begin
       for j:=1 to n do write(m[i,j].new:8);
       writeln;
     end;
end.

                             5.
      襭 ᭮뢠  ᯮ짮 ।. 砫 
। 頥 ,  ।騩 室   -
⭮  ,   ᮮ⢥ ⪠  砥  -
饭.
        ᫥ 蠣 ⬠ ( ।  
  祭 筠 ⪠) 믮 ᫥騥 ⢨.
  1.  ।  । ,   ।
       (x,y).
  2. 室 ⪨  । ,   ⨦  (x,y)
      室 嬠⭮ ,     祭.
  3. ,  ᮮ⢥騥    ⪠,   
     ।,  ⪨   饭.
     ⮬  砫   ⪨   祭,   
⥫쭮 ⠢ ⠪, ⮡  뫮 ⠭  
ﬨ.
     ⮣    ।   ,  -
ன  뫠 祭.

                             6.
      襭 ᭮뢠   ᯮ짮  ⥪.  뢠
室 ᫥⥫쭮 ᪮  ᪮,  믮 ᫥-
騥 ⢨.
   1. ᫨ । ᪮ - 뢠,  頥   ⥪.
   2. ᫨ । ᪮ - 뢠,   㥬 ᪮,
        設 ⥪.  ᪮쪮 権:
     ) 뢠 ᪮ ᮮ⢥ ।  뢠饩.  
      ⮬  砥   ⠫  ⥪,     
      室 ᪮.
     ) 뢠  ᪮  ᮮ⢥ । 뢠饩
       ⥪ .   ⮬ 砥   ࠢ쭮
      䬥᪮ ࠦ.
     ᪮ 室 ப ࠡ⠭,  2 樨.
    1. ⥪ .   ⮬ 砥   ࠢ쭮 䬥-
       ᪮ ࠦ.
    2. ⥪  .   ⮬ 砥   ࠢ쭮
       䬥᪮ ࠦ.

                             7.
     室 ࣠  ⥪    権 ⮢,
⥭  訬.    ⥪饣   ⠫-
  ⥪  樨,       ⥪-
饣    ⥪騬.  ⥬  ⥪饣    -
  ⥪.᫥ ᬮ  ⮢  ⥪  
樨 ⮢,    .

                              8.
      襭  ᭮뢠   ᯮ짮 ।.   ᫨
ॠ   ⠭  ⠭    -
筠 孨,  ᯮ㥬   6,    
⮢ ᪮쪮 ᫮    ।.
      ⮣      ⠭  ன ᥫ (,,),
  -  ⠭,  -  ,  - 稭 প.
 롮 ।   ।  2 樨.
   1. த   ⮬  .    ⮬  砥  
      ।  ன ⨯ (',,),   ' -  -
      , ᥤ ,   ,  =0.
   2.   .   ⮬ 砥  ।  ன
      ⨯ (,',),  ' -   , =3 (-
      প  ᠤ).
      ⮬  ன ஦ ⮫쪮 ன   প,
ࠢ 0.  砥 ன  㫥 প   頥
 ।  㬥襭  1 祭 প.

                             9.
     㤥 ࠭    ᨢ A[1..N,1..2] न  ⮪,
 ஫ 㦥 .  쬥 N 筮 訬, N=500. A[i,1] -
ᮢ,  A[i,2] - ४ न ⪨.   ६
DLN ࠭ ⢮ 㦥 ᤥ  室  (..    ᨢ  A
᫥ 室  i   ⪨  ࢮ  i-).
      ।  室  ᨬ  ᨢ A  ࢮ
᢮  (..     ᮬ DLN+1), 㢥稢
⢮ ᤥ 室 DLN:=DLN+1,   ஢塞, ᮢ
    権,    ஫ 㦥 ,  ⥪饩
樥:
     for i:=1 to DLN-1 do
       if (A[i,1]=A[DLN,1]) and
          (A[i,2]=A[DLN,2])       { ஢ઠ ᮢ }
     then begin
            writeln('ᮢ  室 ',DLN,'  ',i);
            halt;                 { ⠭ }
          end;
      ᬮਬ,     室 ஫.   
⪨ k    8 ᥤ 権.
     1  2  3     㤥  ࠢ ६饭 ஫
     8    4     ன  1  8.
     7  6  5
      ᨢ XOD=array[1..8,1..2]=((-1,1),(0,1),(1,1),
(1,0),(1,-1),(0,-1),(-1,-1),(-1,0));
      ᨢ  ᬥ饭  x-  y-न⠬,  ᮮ-
騥 ࠢ  1  8.  न ஫ ᫥  ᤥ-
 室   㫠
             x:=x+XOD[i,1];           y:=y+XOD[i,2];

                             10.
        N+M .  ஭㬥㥬  樨  -
浪    1  N+M.
      ᨢ A  N+M 祥. ࢮ砫쭮  祩 㫥-
. 稭   ࢮ 祩, 㤥  室 - 뢠
S 祥 (⠥,    N+M- ⮬ ᫥ ।⢥
1-  ᨢ)    ⮩ 祩 ᫮  i    ᫮
1-i (.. 0  1,  1  0). ᫥ k-⮣ 室 ⠭.
     ᬮਬ  . ᫥  室 ॢ-
   ,   ⮬ ࠧ ⢠ ,  
ࡠ   ⢠ ,  ࡠ   㢥-
稢,   㬥蠥  2.  ਬ, ᫨ ॢ稢
,  ࡮ ,   ⮬ 㢥稢  1 -
⢮   ࡮   㬥蠥  1 ⢮  -
 .
     ।,   ᫥  k 室  ᨢ A ⠫ p  -
..  p ,  ࠢ  砫 ,  ॢ-
 ᫥ k- 室.
      砥,  ᫨ L>=N,   (L-N) ,   ࡠ
,  ᫥ k- 室  ॢ ࡠ . (-
 p<(L-N),  , 祢,  ᤥ). । ⠢-
 p-(L-N) ॢ     ࡠ  
 - , ⮡  ॢ 㬬୮ ᫮  ࡠ-
     . ⥫쭮, ᫮ p-(L-N) 
 ,   ᫮    㤮⢮  .  
p-(L-N) = 2v.  , 祢, v<=N, v+(L-N)<=M.
     ⠪,  砥 L>=N,  ᫨  믮     -
ࠢ
       p-(L-N)=2v>=0,
       v<=N,
       v+(L-N)<=M,
 ८ࠧ 砫쭮 䨣樨   .
       (L-N) ,  祭  ᨢ A 栬,  -
⠢塞   ࡠ .   ⠢訥 2v=p-(L-N) 祭
栬 権  v  ࡠ   v ࡠ   
ந쭮 浪.  ⠫ 樨  ⠢訥 -
    ந쭮 浪, ⮡  饩 ᫮ 뫮 N
 ࡠ   M - ࡠ .
         竨  䠪,    稭  ࢮ -
 ࡮ :
     ) ᫨  ᨢ A   㫥,   砥, ᫨
।  (N+M)-p     ࡮  ( ⭮
믮 ᫮ N-v>0),        .  ᫨
 (N+M)-p  - ࡮  (.. N-v=0),  ࠧ饭 
.
     ) ᫨    A[1]=1,   । p     ࠩ
 ,   室  ࡮ , , 
, ࠧ饭 .
     砩 N-L>0 ࠧࠥ 筮.

                             11.
         10 塞 ᭠砫 ᨢ A ﬨ, ७-
஢뢠   浪  N+M 権  1  N+M.  稭  ࢮ
樨 ( 誠)  室 - 뢠 S  㫥  権
 浪 (⠥,   ,  ᨤ ꥤ 誠, -
砥 楩,  ꥤ 誠 - 㫥;   N+M- 樥
ᯮ  ࢠ)   ⠢塞  ᮮ⢥  1 -
誠 ꥤ.   稭  ᫥饩  ꥤ -
. (  ண ᪠ S-⮩ 誨 । ⠢  -
  ᯮ짮 ᯨ᮪, ᠭ   2).
      P=(N+M)-(K+L) 室.
      ᫮     ࢮ 樨 ᨤ  誠.  
A[1]=1 (ࢠ  뫠 ꥤ),    ⠢ P-1  筮
樨  ந쭮 浪 ⠢塞 N-K-1   M-L 
襩.   ⠢ 묨  ᠦ      
ந쭮 浪 ⠢ 襩.
     ᫨ A[1]=0,   K=0,   砫쭮 ⠭   
(   ꥤ,       ࢮ -
樨);  ᫨  K<>0,     ᠦ N-K 
  M-L   襩,    ⠢  -    -
 ,     ⠫ -     ந쭮 -
浪.

                              12.
      襭  ⮨   ᫥⥫쭮 । ⢠
⮪,  ਭ ⮬  ,     䨪஢
⪠.
     稭  ன 祭  ⪨  (砫쭮),  
砥,    ⪨, 騥    ஭. -
⥬, ᯮ  祭 ⪨, 砥 ⢮ ⮪,
     ஭  ..,    ன 樨 
㤥 祭    ⪨.  ⢮ ⮪,  祭
⠪ ࠧ,   ⠢  ᮪  ᨬ쭮 ࠧ-
.
       饣 ⢠ ᪮ 室  -
⢮ ⮪,  ࠭  ⢥  砫.    砫쭠
⪠  롨ࠥ  ⢠ ⮪,   祭  ।
.   ࠭  祭 ⮪   ᯮ짮
।  ⥪,   ⮪  ஢   ࠧ
N*M.

                             13.
      ᥣ   ஬஢ ᪫ 祪: ६
⮯    n    祪  稭 ᪫  -
   - ࢠ  ⮫,   ,   ⮫, 
..  ⮬ ࢮ 뫮 窥 ਯ뢠  梥,
  ᫥饩 - 梥,   ᮢ騩   梥⮬  ।饩
窨.  ⠪,      n 祪.
      ⮩  쬥 ⠪    ᯨ᮪.  
ᯨ᪠  砫  ,     㪠뢠  ᫥-
騩   .  㤥  ,    ᫥ 
ᯨ᪠  㪠⥫    ᫥騩      ࠢ  0.  ᮪ 
।⠢ ᨢ.  ਬ,  ᫨  ᯨ᪥  4  ,  
ᨢ 㤥 룫拉 ⠪:
                       1   2   3   4
                     Ŀ
                  A   2  3  4  0 
                     
     ..   ⮬ 室 A[1]=2  ,  ...,  
4- - A[4]=0 (.. 4-  ᯨ᪠ ᫥).
         㪠⥫  砫  ᯨ᪠    
᫥ (BEG  FIN ᮮ⢥⢥).  ᯨ᪥ n ⮢.
     ᬮਬ 楤 㤠   砫 ᯨ᪠  (
ᮮ⢥ ७ 窨  ⮫):
     BEG:=A[BEG]; {⥯      ᯨ᪠  -  ன
 ண ᯨ᪠}
     ᬮਬ  ⠭   砫 ᯨ᪠ 
  (  ᮮ⢥  ६饭 窨 ᢥ ⮯ 
 ):
     A[FIN]:=BEG; {᫥饩  ᫥ ⮬
                     - 訩 }
     FIN:=BEG;    {塞 뫪  ᫥ }
     BEG:=A[BEG]  {  }
     A[FIN]:=0    {४஢ 뫪  ᫥ }
     ࠣ ணࠬ 㤥 룫拉 ⠪:
       for i:=1 to N-1 do A[i]:=i+1;
         A[N]:=0;    {⠭ 뫮  ᯨ᪥}
       BEG:=1;   FIN:=N;
       COLOR:=1;     { 梥 = 1,  = 0}
       while A[BEG]<>0 do {    }
                          {६  ᫥}
       begin
            BEFORE:=BEG;  {࠭塞  砫 ᯨ᪠}
            BEG:=A[BEG];  {㤠塞    ᯨ᪠}
            A[BEFORE]:=COLOR; {訢 㤠 }
                              { 㦭 梥}
            COLOR:=1-COLOR;    {塞 梥}
            A[FIN]:=BEG;       {⠢塞  }
            FIN:=BEG;          {砫 ᯨ᪠  }
            BEG:=A[BEG];
            A[FIN]:=0
       end;
       A[BEG]:=COLOR;        {訢 ᫥ }
                              {ᯨ᪠}
       for i:=1 to N do        {ᯥ⪠ 梥⮢}
         if A[i]=0
         then writeln('',i,' - ')
         else writeln('',i,' - ');

                             14.
      ॠ樨  ⬠      
 "।".  ।  ணࠬ஢,   ।  -
,   砫  .  ᫨ 室  ,  
⠭   ।,  ᫨ 室    -
।,      砫. । 㤥 ।⠢  -
 ᨢ.        ࢮ - BEG  ᫥ -
FIN ⮢ । (᫨ । ,   BEG=FIN+1;  ᭠砫
 BEG=1, FIN=0).
     । 襬 ⠪: var Queue=array[1..MaxQ] of element;
      MaxQ - ᨬ쭮 ᫮ ⮢  ।,  element -
- ⨯ .      ⢥ element  
⠪
        type element = record
                x: byte;
                y: byte;
             end;
      element -  ,    x-  y- -
   A=array[0..M+1,0..N+1] of integer. 
 ਭ ⠪ 祭 - ⮣,    㤥  -
   㫥묨 ⠬ (⠪ 㤥  ஢ 뫨-
  ࠩ 䨣).
      ।  ஢ 樨:
           ⠢    । InQueue,
           㤠  । OutQueue.

     Procedure InQueue (x : element);
     begin
       FIN:=FIN+1;      {  ࢮ ᢮ }
       Queue[FIN]:=x;   { ⠢  x }
     end;

     Procedure OutQueue (var x : element);
     begin
       x:=Queue[BEG];   { ६   }
       BEG:=BEG+1;      {  塞 㪠⥫ }
                        {  ᫥騩   }
     end;

     室 ᨬ  D   A.   
  A  ⠭ ࠢ D,  塞 ᫥ ᫥⥫-
 ⢨:
     ) 室    㫥  z (᫨ 
᪮쪮,   ६   ),   ᨬ   । (-
। ᭠砫 ). ᫨   㫥  z=D,
 .
     砫 ⠥,   p=D -   ࠭ 
,  ⠬  祭 z.
     )      ᬮ७  । (
    室  樨 (i,j)) 塞 ᫥-
饥:
       ᥤ (ᢥ, ᭨, ࠢ, ᫥) 
 (i,j) ஢ ஢-ᬮ:
      (ᥤ <> z)
      P=min{P,ᥤ}
       ᥤ   ᬮ७
              न ᥤ -  । ( । 
                  ᬮ७ )
..  饬  騩  ,  
⠬  祭 z.
     ࠣ ணࠬ ᪠:
 var Delta = array [1..4,1..2] of integer =
             ((0,1),(1,0),(-1,0),(0,-1));
{ Delta -   ᬥ饭 ᥤ ⮪  ⥪饩 ⪨ }
     Current, neighbor : element;
     z      : integer;
                               ....
   { 㤥  ,     㦥 ᬮ७ }
   {                  㬭   -1                     }
   {    㫥    祭 z  }

   while BEG<>FIN+1 do begin
     OutQueue(Current);
     for i:=1 to 4 do begin
       neighbor.x:=Current.x+Delta[i,1],
       neighbor.y:=Current.y+Delta[i,2],
       if A[neighbor.x,neighbor.y]=z
       then InQueue(neighbor)
       else p:=min(A[neighbor.x,neighbor.y],p);
     end;
   end;

     ᫨  ।   ᬮ७ ⮢, , ᫨
p<z (砩,     "᫨"  ࠭ )
    ᬮ७   । ᨬ  -
 D (  ࠢ묨  祭, ⮡   
ᬠਢ).
     ᫨   p>z,    뢠,  ᪮쪮      
"ᥩ"  㡨  z   ⮩ ࠦ饣  p:
   ꥬ = (p-z)* ⢮ ᬮ७ ⮢  ।.
     塞 祭 ꥬ  ࠭    ꥬ  ,
饬    x.
     塞   ,  ᮮ⢥騥  ᬮ७
⠬  ।,  祭 p (""   "ᥩ" 
஢ p).
     室  㭪 ).
     㬬 祭 ꥬ    ᪮.
      , 㯮⮥ ,  룫拉 ᫥-
騬 ࠧ:   [1..N,  1..M]  ﬨ ⠪:
 ⥫  㫥 0-  (N+1)- ப  0-
 (M+1)- ⮫
     var A: array[0..N+1,0..M+1] of byte;
                          {    ﬨ}
     for i:=1 to N do begin
       A[i,0]:=0; A[i,M+1]:=0;
       for j:=1 to M do read(A[i,j]);
     end;
     for j:=0 to M+1 do begin
       A[0,j]:=0; A[N+1,j]:=0;
     end;

                              15.
      ,   ⢮ 襭 室 ஢-
     ᠬ  室  ᠬ  室, ᠬ
ࠢ -  ࠢ  ..  ⮬ ਢ 襭 ⮫쪮  -
 ).
     ᭮ ⥣ 祫,  襤襣    ᠬ    室,
⮨  宦 ਭ,  ᯮ   ᢮
 ਭ,  ..    , ঠ ࠢ 㪮 
"⥭" ਭ.    ଠ ᫥騬 -
.  室  । 樨 ਭ,    ,  
 ஭  襫  (᫥,  ࠢ, ᢥ, ᭨), , -
 ⮩ ଠ樥,  ᫥饥  ।-
⥫쭮  ࠢ     (㤠      
 ).   ⮬ 㤮 ᯮ짮 ⥪,  誥 ண -
室 न ⥪饩 樨  ࠢ,   ஬  
諨.   ⮬  饭 ⪨ .  , 
᫨    ᢥ,   訬 ࠢ 㤥 -
,  ⥬ ,  ࠢ,    (). 筮 
। 訥 ࠢ  㣨 砥.
      ⥣    ,  ⮬ 樨,-
祭 ।騬 쬨,  饭묨  ᫥.

                             16.
      饭 ᫥ ᬮ ८ࠧ -
    ,  ..   ⠪  ᪮
,  ன ࠭ 뢠  ⮬  浪,  
 室 ࠦ,        樨  ᫥  -
।⢥  ࠭,   묨   ஢-
.
     ਬ: ࠦ  '(3+5*2)/3-1' ८ࠧ  '3 5 2 *
+ 3 / 1 -' (᭠砫 㤥 믮  *   ।-
騬  ࠭ 5  2,  १ 10 頥  
ᥫ 5  2.  ⥬ -  +  ।騬  ࠭-
 3  10,  १ 13 頥   3  10,   ..
ࠦ  室 ᫥ 㤥 ਭ :
     3 5 2 * + 3 / 1 -
     3 10 + 3 / 1 -
     13 3 / 1 -
     4 1 -
     3.
      ᫥ ᪮筮 䬥᪮ ࠦ.
८ࠧ㥬 ᭠砫 ࠦ    . -
 樨  뢠饩 ᪮ ਯ襬 ਮ:
                    ਮ
     Ŀ
       (            0       
       +,-          1       
       *,/          2       
      ⮩ ⥪   0       
     
      1. ᫨  室 ப  ,  ३  -
 6;    ᫥騩  (᪮,  
࠭)    १ x.
      2.  ᫨  x  -  ࠭,   ७   室
ப,  ᫥   ࠧ⥫     蠣
1.
      3.  ᫨ x - 뢠 ᪮,       
⥪    蠣 1. ᫨ x - 뢠 ᪮,  -
३  蠣 4;  ३  蠣 5.
      4. ᫨ , 室騩  設 ⥪,  -
 뢠饩 ᪮,  ७   ⥪  室-
 ப,      ࠧ⥫,   ⥬ 
蠣 4.  ᫨  設 ⥪  室  뢠  ᪮,
㤠   ⥪    蠣 1.
      5. ᫨ ਮ   設 ⥪  
ਮ x,    ७     ⥪  室
ப,    ࠧ⥫,  ⥬  蠣 5.
  x  設 ⥪    蠣 1.
      6.  ᢮ ⥪, 㤠  ࠧ   -
     室 ப  ᫥騬 ࠧ-
.  ࠡ.
     ਬ:
       ॢ ࠦ '(3+5*2)/3-1' 
'3 5 2 * + 3 / 1 -'.
     ᫨  室 ஥ ⭮ ᪮    -
   樨    室 ப (    -
।⢥  ⥬ ࠭,   묨   믮-
  ),    室 ப  ᫥
࠭, 믮   ,   १  
᭮   室  ப,       ᫥ 蠣 6  室
ப  ᪮ १.
     ᬮਬ ᫥  ਬ ࠦ (3+5*2)/3-1
   ।       ᫥ ࠡ⪨ 
    室 ப       
                          ⥪      室 ப
        (                  (             
        3                  (                3
        +                  ( +              3
        5                  ( +              3 5
        *                  ( + *            3 5
        2                  ( + *            3 5 2
        )                        ७  * 
                                    室 ப,  믮-
                                    塞 㬭  
᫥ ⠬ 室 ப,   ⮬ 5  2   
,   १ 㬭 10 - 頥  室
ப.  ਭ : 3  10.
          뫨  ७  +  ⥪  -
室 ப,   ⮣   믮塞 ᫮ 
 ᫥  ⠬    १ 頥  室
ப, ⠪   ⠭ ᫥饩:
                                            13
        /                  /                13
        3                  /                13 3
        -                  -        믮塞  13  3,
                                     室 ப
                                            4
        1                  -                4 1
   室 ப               室 ப 頥
                             १ 4-1=3.   
                                   祭 ࠦ.
     ⢥     室  ப  ᯮ짮 ⥪
ᥫ. 樨 ஢   孨 ⠬  -
.  ᭮ 頥  ⥪.

                             17.
         ॡ    ।⢥
稭,       ࠧ㬭 ᯮᮡ 祭 業
  ᠢ 稭, ஬ ࢮ, ᯮ 
   ⮫쪮  .   ࠧ,    ।
⮨   稭     ᮮ⢥騬
 ஬ 㬬 ⮨⥩ 稭  ⨨  . 
ࠧ,   砥 ⮩  䥪⨢  ४ᨢ  
। ⮨⥩ 稭.
        ⮩    쪨  ,  ,
   쭮 ⢮ 㦥 ன  稭-
,  ᪫砥  ࠡ  稭.  
⬠ -   㬬୮  ⮢  .

