Cod sursa(job #473413)

Utilizator lianaliana tucar liana Data 29 iulie 2010 12:56:30
Problema Tablete Scor 70
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.23 kb
program tablete;
var f, g:text;
    i, j, n, val, k, valret, nr:longint;
    ma:array[1..1000,1..1000] of longint;

procedure plasare;
  begin
    val:=(k-2)*n+1;
    if n mod 2+k mod 2<>2 then
      for i:=1 to n do
        begin
          ma[i,k-1]:=val;
          ma[i,k]:=val+1;
          val:=val+2;
        end
     else
       begin
         ma[1,k-1]:=val;
         val:=val+1;
         for i:=2 to n do
           begin
             ma[i,k-1]:=val;
             ma[i-1,k]:=val+1;
             val:=val+2;
           end;
         ma[n,k]:=val+1;
         valret:=val;
         val:=val+1;
       end;
    j:=j+2;
  end;

  begin
    assign(f,'tablete.in'); reset(f);
    assign(g,'tablete.out'); rewrite(g);
    readln(f,n,k);
    j:=1;
    val:=1;
    plasare;
    if n mod 2+k mod 2=2 then
      ma[1,k+1]:=valret;
    for i:=1 to n do
      begin
        for j:=1 to n do
          if (j=k) or (j=k-1) or ((i=1) and (j=k+1) and (n mod 2+k mod 2=2)) then
            write(g,ma[i,j],' ')
           else
             begin
               nr:=(j-1)*n;
               nr:=nr+i;
               write(g,nr,' ');
             end;
        writeln(g);
      end;
    close(f);
    close(g);
  end.