Cod sursa(job #238763)

Utilizator MihaiBunBunget Mihai MihaiBun Data 3 ianuarie 2009 11:15:28
Problema Tablete Scor 60
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.28 kb
program table;
var a:array[1..1000,1..1000] of longint;
    n,k,i,j,d,e:longint;
    f:text;
begin
  assign(f,'tablete.in');
  reset(f);
  readln(f,n,k);
  close(f);
  assign(f,'tablete.out');
  rewrite(f);
  if (n mod 2=1) and (k mod 2 =0) then
      begin
        for i:=1 to n do a[i,1]:=i;
        d:=n;
        for i:=1 to n do
          for j:=2 to n do
            begin
              d:=d+1;
              a[i,j]:=d;
            end;
       end;
  if (n mod 2=1) and (k mod 2=1) then
       begin
         d:=1;
         for i:=1 to n-1 do
           begin
             a[i,1]:=d;
             d:=d+1;
           end;
         for i:=1 to n-2 do
           for j:=2 to n do
             begin
               a[i,j]:=d;
               d:=d+1
             end;
         for i:=2 to n-1 do
            begin
              a[n-1,i]:=d;
              d:=d+1;
            end;
         for i:=1 to n-1 do
           begin
             a[n,i]:=d;
             d:=d+1
           end;
         a[n-1,n]:=d;
         d:=d+1;
         a[n,n]:=d
       end;
   if (n mod 2=0) and (k mod 2=0) then
       begin
         d:=1;
         for i:=1 to n do
           for j:=1 to n do
             begin
             a[i,j]:=d;
             d:=d+1
             end;
       end;
  if (n mod 2=0) and (k mod 2 =1) then
       begin
       d:=(n-1)*(n-1);
       for i:=1 to n do
         begin
           d:=d+1;
           a[n,i]:=d;
         end;
       for i:=n-1 downto 1 do
         begin
           d:=d+1;
           a[i,n]:=d
         end;
         n:=n-1;
          d:=1;
         for i:=1 to n-1 do
           begin
             a[i,1]:=d;
             d:=d+1;
           end;
         for i:=1 to n-2 do
           for j:=2 to n do
             begin
               a[i,j]:=d;
               d:=d+1
             end;
         for i:=2 to n-1 do
            begin
              a[n-1,i]:=d;
              d:=d+1;
            end;
         for i:=1 to n-1 do
           begin
             a[n,i]:=d;
             d:=d+1
           end;
         a[n-1,n]:=d;
         d:=d+1;
         a[n,n]:=d;
         n:=n+1
       end;
  for i:=1 to n do
  begin
  for j:=1 to n do
  write(f,a[i,j],' ');
  writeln(f)
  end;
  close(f)
end.