/CLOA - Thành Cổ Loa

<Problem>

http://ntucoder.net/Problem/Details/33
              Uses Crt;
        Var  a:array[0..100,0..100] of longint;
             n,i,j,num,d,b:longint;
        Procedure Ghi;
        var i,j:longint;
        begin
            for i:=1 to n do
            begin
                for j:=1 to n do write(a[i,j],' ');
                writeln;
            end;
        end;
        Procedure TCL(d,b:longint);
        var i:longint;
        begin
             inc(d); inc(b);
             for i:=b to n-b+1 do begin //luu chu so hang tren
                 inc(num);
                 a[d,i]:=num;
             end;
             for i:=d+1 to n-d+1 do begin  //luu chu so cot ben phai
                 inc(num);
                 a[i,n-b+1]:=num;
             end;
             for i:=n-b downto b do //luu chu so hang duoi
             begin
                 inc(num);
                 a[n-d+1,i]:=num;
             end;
             for i:=n-d downto d+1 do  //luu chu so cot ben trai
             begin
                 inc(num);
                 a[i,b]:=num;
             end;  ;
             if ((n mod 2=0) and (n div 2=d)) or ((n mod 2=1) and (n div 2+1=d))
                then exit else TCL(d,b);
        end;
        Begin
            (* ban chat cua bai la sap xep vong trong mang hai chieu voi cac vong bat dau tu o [i,j],[i+1,j+1],[i+2,j+2]..vv*) 
            readln(n);
            num:=0; d:=0; b:=0;
            TCL(d,b); ghi;
            readln;
        End.