-

+; "...\\\";
.(" !") .


:





:      |   |   | 


: 12.09.10.

+;


      "...\\\",
        "...\\\",
      "...\\\",
        "...\\\",
  "...\\\",
      "...\\\",
    "...\\\",
      "...\\\",
          "...\\\";


  = 100 ;
  = 10 ;


  , : ;
  , : ;
  , : ;
  , , , : ;
  : 4 ; : ;
  : .;
  : 4 .;
  , : ;
  : ;
  , : ;
  : ;
  :
    : ;
    : 4 ;
    : ;
    : 4 ;
    : ;
  ;


  = 2;
  1 = 5;
  2 = 6;
  3 = 7;
  4 = 8;
  = 4;
  = 3;
  = 1;
  = 300;

(: ): ;

  400
;

(: ): ;

  400 100
;

(: ): ;

  100
;

(: ): ;

 
    0: -10
  | 1: 1
  | 2: 10
  | 3: -1
 
;

(: ): ;

  10
;

(: ): ;

  100 10
;

(, : ): ;

  ( > 99) ( < 0)
  ( 10 # 10) ( 10 # 10) ;
 
;

(: ): ;

  , : ;

  := ();
  := +(())*(()-1);
  (, )
;

(: ; : ): ;

 
    = 3 0 +1
 
    = 0 3 -1
 
;

(: ; : ): ;

  1, 2: ;

 
    1 := 0 ()-1
      2 := 0 ([1])-1
        [1] # -1
          = ([1])+
                        (([1]))*2
           
         
       
     
   
 
    1 := 0 ()-1
      2 := 0 ([1])-1
        [1] # -1
          = ([1])+
                        (([1]))*2
           
         
       
     
   
  ;
 
;

(: ; : ): ;

  : ;
  , , , , , : ;

  := (); := ();
  := ();
  := ((, ));
  := ();
  := ((, ));
  := 0 -1
    (+*, )
  ;
  := -1
    (+*+, )
      ( (, +)) ( (+, +*+))
   
  ;
  (-, ) ( (, -)) ;
  (+*, ) ( (, +*)) ;
  := -1
    (+*+, )
      ( (, +)) ( (+, +*+))
   
  ;
 
;

(: ; : ): ;

 
    = 99 0 +1
 
    = 0 99 -1
 
;

(, , : ): ;

  +*100+*400;
;

;

  , 1, 2: ;
  : ;
  , : ;

  := 0 ()-1
    [] := -1; [] := -1
  ;
 
    := (((.()*99)));
    := (((.()*3)));
    := (, , 4);
    ( ()) ( (, ))
   
      := 0 98
        := (, );
        := (, , 4);
        ( ()) ( (, ))
      ;
      := 0 2
        := (, );
        1 := 0 98
          := (, );
          := (, , 4);
          ( ()) ( (, ))
       
     
   
  ;
  [0] := ;
  2 := 1 2
   
      := (((.()*99)));
      := (((.()*3)));
      := (, , 3);
      ( ()) ( (, ))
     
        := 0 98
          := (, );
          := (, , 3);
          ( ()) ( (, ))
        ;
        := 0 2
          := (, );
          1 := 0 98
            := (, );
            := (, , 3);
            ( ()) ( (, ))
         
       
     
    ;
    [2] :=
  ;
  2 := 3 5
   
      := (((.()*99)));
      := (((.()*3)));
      := (, , 2);
      ( ()) ( (, ))
     
        := 0 98
          := (, );
          := (, , 2);
          ( ()) ( (, ))
        ;
        := 0 2
          := (, );
          1 := 0 98
            := (, );
            := (, , 2);
            ( ()) ( (, ))
         
       
     
    ;
    [2] :=
  ;
  2 := 6 9
   
      := (((.()*99)));
      := (, 0, 1);
      ( ()) ( (, ))
     
        := 0 98
          := (, );
          := (, 0, 1);
          ( ()) ( (, ))
       
     
    ;
    [2] :=
 
;

;

  = "                                                                 ";
  = " 0 1 2 3 4 5 6 7 8 9 ";

  .(1, 3, 1, 32, );
  .(2, 2, 21, 2, );
  .(2, 3, 21, 32, 10X);
  .(1, 47, 1, 76, );
  .(2, 46, 21, 46, );
  .(2, 47, 21, 76, 10X)
;

(: ; : ; : ; : );

  : ;

  [] := [] := ;
  := 3 := 47 ;
 
    0: .(2 + 10 * 2, + 10 * 3,
                     3 + 10 * 2, + 10 * 3 + 2, 10X)
  | 1: .(2 + 10 * 2, + 10 * 3,
                     3 + 10 * 2, + 10 * 3 + 2, 0F0X)
  | 2: .(2 + 10 * 2, + 10 * 3,
                     3 + 10 * 2, + 10 * 3 + 2, 0X)
  | 3: .(2 + 10 * 2, + 10 * 3,
                     3 + 10 * 2, + 10 * 3 + 2, 80X)
  | 4: .(2 + 10 * 2, + 10 * 3,
                     3 + 10 * 2, + 10 * 3 + 2, 90X)
  | 5: .(2 + 10 * 2, + 10 * 3,
                     3 + 10 * 2, + 10 * 3 + 2, 40X)
  | 6: .(2 + 10 * 2, + 10 * 3,
                     3 + 10 * 2, + 10 * 3 + 2, 0C0X)
 
;

(: ; : ; : );

  : ;
  , : ;

  := ();
  := (());
  := 0 ()-1
    (, +*)
      (, +*, , )
   
 
;

(: ; : ): ;

  1, 2: ;
  , : ;

 
    1 := 0 ()-1
      := ([1]);
      := (([1]));
      2 := 0 ([1])-1
        = +*2 [1]
     
   
 
    1 := 0 ()-1
      := ([1]);
      := (([1]));
      2 := 0 ([1])-1
        = +*2 [1]
     
   
 
;

(: ; : ): ;

  : ;
  , : ;

 
    := ();
    := (());
    := 0 ()-1
      [+*]
    ;
   
 
    := ();
    := (());
    := 0 ()-1
      [+*]
    ;
   
 
;

;

  : ;

  := 0 9
    ([], ) ([], , 1)
 
;

;

  = 0
    = 0
      := ; .(, "!")
   
      := ; .(, "!");
   
  = 0
    := ; .(, "!")
  ;
  :=
;

(: ; : ; : ; : ; : );

  : ;
  , , , , , : ;

  := (); := ();
  := ();
  := ((, ));
  := ();
  := ((, ));
  := -1
    ( (, +))
      ( (+, +*+))
    ( [+*+]) () ;
      (, +*+, , );
   
  ;
  (, -)
  ( [-]) () ;
    (, -, , );
  ;
  (, +*)
  ( [+*]) () ;
    (, +*, , );
  ;
  := -1
    ( (, +))
      ( (+, +*+))
    ( [+*+]) () ;
      (, +*+, , )
   
 
;

(: ): ;

  : 4 ;
  , : ;
  : ;
  : ;

  [0] # 0 ;
  := 0 3
    [] := 0;
    ( (, +()*[]))
     ( [+()*[]]) ([] < 3)
      ([])
   
  ;
  := [0]+[2]-1;
  := [1]+[3]-1;
  := 1;
  ( < 4) ([] = 0) () ;
  ();
  ( > ) ( > )
;

(): ;

  , , : ;
  : ;
  : ;

 
    := (((.()*3)));
    ((.())) = 1 := := ;
    := . + (.[])*();
    ( .[]) (., ) []
      := (, );
      := . + (.[])*()
    ;
    . := ;
   
  ;
  := (((.()*(-1))))+1;
  := 0; := 0;
 
    [] () ;
    = ()
  ;
  ()
    ((.())) = 1 := := ;
    [] ( ()) := (, ) ;
   
 
;

(): ;

  : ;
  : ;
  : ;
  : ;

  := ();
  ();
  (, )
    ();
    := (, );
    (, , 6, );
    (, )
      (, , 4, , ); (, , 6); .();
      (, , 2); .(); := ;
      ([()-1]);
     
   
      .(); (, , 5, ); .();
     
        .
          .[(., )] := ;
          .[(., )] := ;
          . :=
        ;
        (.[.])
     
        := ;
        . := ;
        := 0 3
          .[] := ; .[] := 1
        ;
        . := -1; . :=
     
    ;
   
 
    (, , 3, ); .();
    (, , 4, ); .();
    .[.] := ;
   
 
;

(x, y: ): ;

  : ;
  : ;

  := ((x - 47) 3 + ((y - 2) 2) * 10);
  []
    (, )
      ();
      := (, );
      (, , 6, );
      (, )
        (, , 4, , ); (, , 6); .();
        (, , 2); .();
       
     
        .(); (, , 5, ); .()
      ;
     
   
      (, , 3, ); .();
      (, , 4, ); .();
     
   
 
   
 
;

(x, y: );

  (((x < 77) (x > 46)) ((y < 22) (y > 1)))
    ( (x, y))
      ()
   
 
;

(: );

  : ;
  , : ;

  := ();
  := (());
  := 0 ()-1
    (+*, )
      (, +*, 1, )
   
      (, +*)
        (, +*, 0, )
     
   
 
;

(, , : );

  : ;

  # 0
    ( < 10) ([-1] > 0)
      := (, , );
      ( ()) ( (, ))
        [] := ;
        (, , 1);
        (); ([-1]); .([-1], "%d", [-1], 0, 0, 0);
        = 10
          := ; := ; .(, " ."); .();
          [0] := 4; [1] := 3; [2] := 2; [3] := 1;
          () ; :=
       
     
   
 
;

(x, y: );

  : ;

  ((x < 33) (x > 2)) ((y < 22) (y > 1))
    := ((x - 3) 3 + ((y - 2) 2) * 10);
    ( = ) ( = ()) ( = ())
      (, , )
   
      # -1 () ;
      := ;
      := (, , );
      ( ()) ( (, ))
        (, , 3)
     
        (, , 2)
     
   
 
;

;

  := ; := ;
  [3] := 1; [2] := 2; [1] := 3; [0] := 4;
  := 0; := 0; := -1; := 0; := -1;
  := 20; := 20; := ; := ;
  := 100
;

;

  : ;

  ;
  := 0 99
    [] := ; [] :=
  ;
  ; ;
  := 0 3
    .([], "%d", 4-, 0, 0, 0)
  ;
  .(, ".")
;

(:.; +:.);

 
    .:
      ..
        : . :=
      | 1: := 1
      | 2: := 2
      | 3: := 3
      | 4: := 4
      | : := (, )
      | : := (, )
      | :
     
  | .:
      .
        1BH: . :=  
     
  | .:
      (. = {}) (. # {})
        (., .) (., .)
     
 
 
;

():.;

  :.;
  :.;
  :.;
  ,4,3,2,1,,,:.;

  :=.(0,0,25,80,,,,0);
  :=.(0,0,0,0," ");
  :=.(23,69,"[ ~ ]",,);
  4:=.(23,3,"[]",4,);
  3:=.(23,12,"[]",3,);
  2:=.(23,20,"[]",2,);
  1:=.(23,27,"[]",1,);
  :=.(23,34,"[<]",,);
  :=.(23,37,"[>]",,);
  :=.(23, 42, "[ ~ ]",,);
  :=.(23, 54, 1, 12, ".");
  [3]:=.(23, 10, 1, 1, "1");
  [2]:=.(23, 18, 1, 1, "2");
  [1]:=.(23, 25, 1, 1, "3");
  [0]:=.(23, 31, 1, 1, "4");
  .(,);
  .(,);
  .(,4);
  .(,3);
  .(,2);
  .(,1);
  .(,[3]);
  .(,[2]);
  .(,[1]);
  .(,[0]);
  .(,);
  .(,);
  .(,);
  .(,); 
 
;

;

  :.;

  :=();
  .();
  .();
  ; ;
 
    .()
  . # .;
  .
;


  := ; ;
 

.
    .