Cod sursa(job #185234)

Utilizator ProtomanAndrei Purice Protoman Data 24 aprilie 2008 22:26:13
Problema Piese Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.11 kb
var f1,f2:text;
    i,j,ii,jj,n,m,g,nr:longint;
    p2:array[0..510] of longint;
    a:array[0..510,0..510] of longint;

function min(x,y:longint):longint;
begin
        min:=x;
        if y<x then
                min:=y;
end;

begin
        assign(f1,'piese.in');
        reset(f1);
        assign(f2,'piese.out');
        rewrite(f2);
        read(f1,n,m);
        for i:=2 to 500 do
                p2[i]:=p2[i div 2]+1;
        for i:=1 to n do
                for j:=1 to m do
                        if a[i,j]=0 then
                        begin
                                inc(nr);
                                g:=1 shl p2[min(n+1-i,m+1-j)];
                                for ii:=i to i+g-1 do
                                        for jj:=j to j+g-1 do
                                                a[ii,jj]:=nr;
                        end;
        writeln(f2,nr);
        for i:=1 to n do
        begin
                for j:=1 to m-1 do
                        write(f2,a[i,j],' ');
                writeln(f2,a[i,m]);
        end;
        close(f1);
        close(f2);
end.