Cod sursa(job #319664)

Utilizator m123pop manu m123 Data 1 iunie 2009 19:11:18
Problema Tablete Scor 60
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.55 kb
Program lll;
var f,g:text;
   n,i,k,j,a:longint;
begin
assign(f,'tablete.in');reset(f);
assign(g,'tablete.out');rewrite(g);
read(f,n,k);
if k mod 2=0 then begin
                  a:=1;
                  for I:=1 to n do
                   begin
                   for j:=1 to n do
                   begin  write(g,a,' ') ;a:=a+1;end;
                   writeln(g);
                   end;
                  end;
if (k mod 2=1) and (n mod 2 =0) then
   begin
   a:=k*n;
   for i:=1 to n do
     if i mod 2 =0 then
           begin
        write(g,(i-1)*k,' ');
        for j:=2 to k do write(g,(i-1)*k+j,' ');
        for j:=1 to n-k do write(g,a+j,' ');
        a:=a+j;
        writeln(g);
          end
        else
           begin
        for j:=1 to k-1 do write(g,(i-1)*k+j,' ');
        write(g,i*k+1,' ');
        for j:=1 to n-k do write(g,a+j,' ');
        a:=a+j;
        writeln(g);
          end
 end;
  if (k mod 2=1) and (n mod 2 =1) then
   begin
   a:=k*n;
   for i:=1 to n do
     if i mod 2 =0 then
           begin
        write(g,(i-1)*k,' ');
        for j:=2 to k do write(g,(i-1)*k+j,' ');
        for j:=1 to n-k do write(g,a+j,' ');
   a:=a+j;
        writeln(g);
          end
        else
           begin
        for j:=1 to k-1 do write(g,(i-1)*k+j,' ');
        write(g,i*k+1,' ');
        for j:=1 to n-k do
                if( i=1) and(j=1) then  write(g,a+j-1,' ')
                    else write(g,a+j,' ');
        a:=a+j;
        writeln(g);
          end
 end;

close(g);close(f);
end.