Cod sursa(job #572547)

Utilizator yodanny3maxim daniel yodanny3 Data 5 aprilie 2011 13:35:20
Problema Tablete Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.78 kb
program tablete;
var n,i,j,k,x,x1:integer;
f1,f2:text;

begin
assign(f1,'tablete.in');
reset(f1);
read(f1,n,k);
close(f1);

assign(f2,'tablete.out');
rewrite(f2);
x:=1;
if (n mod 2=0)and(k mod 2=0) then
  for i:=1 to n do
    begin
    for j:=1 to n do
      begin
      write(f2,x,' ');
      x:=x+1;
      end;
    writeln(f2);
    end;

if (n mod 2=1)and(k mod 2=0) then
  begin
  x:=0;
  for i:=1 to n do
    for j:=1 to n do
      begin
      if (j<>k)and((i=1)or(i mod 2=0))or((i mod 2=1)and(j<>1)and(j<>k))then
        begin
        x:=x+1;
        write(f2,x,' ');
        if j=n then
          writeln(f2);
        end;
      if (i mod 2=1)and(i<>1)and(j=1)then
        begin
        x:=x-2;
        write(f2,x,' ');
        x:=x+2
        end;
      if j=k then
        begin
        x:=x+1;
        if x mod 2=0 then
          write(f2,x,' ')
        else
          begin
          x:=x+1;
          write(f2,x,' ')
          end;
        end;
      end;
  end;

if (n mod 2=0)and(k mod 2=1) then
  begin
  x:=0;
  x1:=n*k;
  for i:=1 to n do
    begin
    for j:=1 to n do
      begin
      if (j<k)and((i mod 2=1)or(i mod 2=0)and(j>1)) then
        begin
        x:=x+1;
        write(f2,x,' ');
        end;
      if j=k then
        if x mod 2=0 then
          begin
          x:=x+2;
          write(f2,x,' ')
          end
        else
          begin
          x:=x+1;
          write(f2,x,' ');
          end;
      if j>k then
        begin
        x1:=x1+1;
        write(f2,x1,' ');
        if j=n then
          writeln(f2);
        end;
      if (i mod 2=0)and(j=1) then
        begin
        x:=x-1;
        write(f2,x,' ');
        x:=x+1;
        end;
      end;
    end;
  end;


close(f2);
end.