Cod sursa(job #240842)

Utilizator cheery_g1rlHaller Emanuela cheery_g1rl Data 8 ianuarie 2009 20:09:01
Problema Tablete Scor 70
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.84 kb
var n,m,l,i,j,k:longint;
    f,g:text;
begin
assign(f,'tablete.in');
reset(f);
assign(g,'tablete.out');
rewrite(g);
readln(f,n,k);
if k mod 2=0 then
  begin
    m:=1;
    l:=n*k+1;
    for i:=1 to n do
      begin
        for j:=1 to k do begin write(g,m,' '); inc(m);end;
        for j:=k+1 to n do write(g,l+j-k-1,' ');
        l:=l+n-k;
        writeln(g);
      end;
  end
            else
if n mod 2=0 then
  begin
    l:=n*k+1;
    for i:=1 to n div 2 do
       begin
         m:=(i-1)*2*k;
         for j:=1 to k-1 do write(g,m+j,' ');
         write(g,m+k+1,' ');
         for j:=k+1 to n do write(g,l+j-k-1,' ');
         l:=l+n-k;
         writeln(g);
         m:=(i-1)*2*k+k;
         write(g,m,' ');
         for j:=2 to k do write(g,m+j,' ');
         for j:=k+1 to n do write(g,l+j-k-1,' ');
         l:=l+n-k;
         writeln(g);
       end;
  end
            else
  begin
    l:=n*k;
    m:=0;
    for j:=1 to k-1 do write(g,m+j,' ');
    write(g,m+k+1,' ');
    write(g,l,' ');
    inc(l,2);
    for j:=k+2 to n do write(g,l+j-k-2,' ');
    l:=l+n-k-1;
    writeln(g);
    m:=k; write(g,m,' ');
    for j:=2 to k do write(g,m+j,' ');
    for j:=k+1 to n do write(g,l+j-k-1,' ');
    l:=l+n-k;
    writeln(g);
    for i:=2 to n div 2 do
       begin
         m:=(i-1)*2*k;
         for j:=1 to k-1 do write(g,m+j,' ');
         write(g,m+k+1,' ');
         for j:=k+1 to n do write(g,l+j-k-1,' ');
         l:=l+n-k;
         writeln(g);
         m:=(i-1)*2*k+k;
         write(g,m,' ');
         for j:=2 to k do write(g,m+j,' ');
         for j:=k+1 to n do write(g,l+j-k-1,' ');
         l:=l+n-k;
         writeln(g);
       end;
    m:=(n-1)*k;
    for j:=1 to k-1 do write(g,m+j,' ');
    write(g,m+k+1,' ');
    for j:=k+1 to n do write(g,l+j-k-1,' ');
  end;
close(f);
close(g);
end.