Cod sursa(job #238784)

Utilizator MihaiBunBunget Mihai MihaiBun Data 3 ianuarie 2009 11:58:35
Problema Tablete Scor 70
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.75 kb
program table;
var a:array[1..1000,1..1000] of longint;
    n,k,i,j,d: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
         for i:=1 to n do
          begin
            a[i,1]:=i;
            a[i,2]:=i+n
          end;
         for i:=1 to n do
           for j:=3 to n do
             a[i,j]:=2*n+(i-1)*(n-2)+j-3;
         a[n,2]:=n*(n-1)+1;
         a[n,n]:=n*n;
         a[n-1,n]:=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.