Advertisement
Guest User

Untitled

a guest
Feb 18th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.66 KB | None | 0 0
  1. program Shedevr;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.   SysUtils;
  7.  
  8. var
  9.    N, i, j, k: Word;
  10.    A, B, C: Array of Array of Word;
  11.    Check : Boolean;
  12.  
  13. begin
  14.    Readln(n);
  15.    if (n >= 5) then
  16.    begin
  17.       Writeln(n);
  18.       Setlength(A, n, n);
  19.       Setlength(B, n, n);
  20.       Setlength(C, n, n);
  21.       n := n - 1;
  22.       k := 1;
  23.       Check := odd(n+1);
  24.       for i := 0 to n do
  25.          for j := 0 to n do
  26.          begin
  27.             A[i, j] := k;
  28.             Inc(k);
  29.          end;
  30.       for i := 0 to n do
  31.       begin
  32.          k := 1;
  33.          for j := 0 to n do
  34.          begin
  35.             B[i, j] := A[i, k];
  36.             if (k = n - 1) or (k = n) then
  37.                k := 0
  38.             else
  39.                k := k + 2;
  40.          end;
  41.       end;
  42.       k := n;
  43.  
  44.       for i := 0 to n do
  45.       begin
  46.          for j := 0 to n do
  47.             C[k, j] := B[i, j];
  48.          if Check then
  49.          begin
  50.             if k = 0 then
  51.                k := n-1
  52.             else
  53.                k := k - 2;
  54.          end
  55.          else
  56.          begin
  57.             if k = 1 then
  58.                k := n-1
  59.             else
  60.                k := k - 2;
  61.          end;
  62.       end;
  63.       for i := 0 to n do
  64.       begin
  65.          for j := 0 to n do
  66.             Write(C[i, j], #9);
  67.          Writeln;
  68.       end;
  69.    end
  70.    else
  71.       if n = 4 then
  72.       begin
  73.          Writeln(n);
  74.          Writeln('14 16 13 15');
  75.          Writeln('6 8 5 7');
  76.          Writeln('10 12 9 11');
  77.          Writeln('2 4 1 3');
  78.       end
  79.       else
  80.          if n = 1 then
  81.          begin
  82.             Writeln(1);
  83.             Writeln(1);
  84.          end
  85.          else
  86.             Writeln(-1);
  87. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement