{---------------------------------------------------------------------
 - Subiect:
   Jocul de sah a fost inventat in India de un supus al regelui Sheram.
   Incantat de ingeniozitatea jocului, regele a ordonat sa fie chemat 
   inventatorul (pe care il chema Set). 
   Modest imbracat, savantul a aparut la tronul regelui.
   -- Seta, eu doresc sa te remunerez destoinic pentru splendida joaca
   pe care ai inventat-o -- a spus Sheram. Numeste premiul care te satisface
   si il vei primi -- a continuat regele.
   -- Stapane, -- dupa ce s-a mai gandit, a spus Seta -- ordona sa mi se
   dea pentru primul patratel un graunte de grau, pentru al doilea - 2 graunte,
   pentru al treilea - 4, pentru al patrulea - 8, pentru al cincilea - 16,
   pentru al saselea - 32, ...
   -- Ajunge! -- iritat l-a intrerupt regele. O sa primesti grauntele tale 
   pentru toate cele 64 patratele ale tablei, conform dorintei tale.
   Dar sa stii ca tu neglijezi nerespectuos mila mea.
   
 - Cerinta:
   Scrieti un program care ii va ajuta pe matematicienii de la curtea lui
   Sheram sa calculeze numarul necesar de graunte, despre imensitatea 
   caruia nu isi putea imagina regele.
   
 - Iesire:
   La ecran se va afisa numarul de graunte, destinate lui Set. 
    
 ---------------------------------------------------------------------}

Program tab_sah;

uses crt;
type byte64 = packed array[0..3] of word; { 4*16 = 64 }

var  w: byte64;

function div10(var a: byte64): char;
var n: longint;
    i: integer;
begin
     n:=0;
     for i := 0 to 3 do begin
        n := n shl 16 or a[i]; { n := n * 65536 + a[i] ; }
        a[i] := n div 10;
        n := n mod 10;
     end;
     div10 := chr(n+ord('0'));
end;

function IsNull(a: byte64): boolean;
begin
 IsNull := (a[0] = 0) and (a[1] = 0) and (a[2] = 0) and (a[3] = 0);
end;

function byte64toStr(a: byte64):string;
var r: string;
begin
     r := '';
     while(not IsNull(a)) do r := div10(a) + r;
     byte64toStr := r;
end;


procedure doiLa64(var a: byte64);
var i: integer;
begin
   for i := 0 to 3 do a[i] := $FFFF;
end;

begin
  clrscr;
  doiLa64(w);
  writeln(byte64toStr(w));
  readkey;
end.
