Cod sursa(job #329290)

Utilizator ionutz32Ilie Ionut ionutz32 Data 5 iulie 2009 18:05:25
Problema Plantatie Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.02 kb
var a:array[0..9,1..500,1..500] of longint;
n,m,i,j,p,d,k,c:longint;
f,g:text;
function max(p1,p2,p3,p4:longint):longint;
         var x:longint;
         begin
         x:=p1;
         if p2>x then
            x:=p2;
         if p3>x then
            x:=p3;
         if p4>x then
            x:=p4;
         max:=x;
         end;
begin
assign(f,'plantatie.in');
assign(g,'plantatie.out');
reset(f);rewrite(g);
readln(f,n,m);
for i:=1 to n do
    begin
    for j:=1 to n do
        read(f,a[0,i,j]);
    readln(f);
    end;
d:=1;
repeat
      d:=d*2;
      p:=p+1;
      for i:=1 to n-d+1 do
          for j:=1 to n-d+1 do
              a[p,i,j]:=max(a[p-1,i,j],a[p-1,i+d div 2,j],a[p-1,i,j+d div 2],a[p-1,i+d div 2,j+d div 2]);
until d>=n;
for c:=1 to m do
    begin
    readln(f,i,j,k);
    p:=0;d:=1;
    repeat
          d:=d*2;
          p:=p+1;
    until d>=k;
    d:=d div 2;
    p:=p-1;
    writeln(g,max(a[p,i,j],a[p,i,j+k-d],a[p,i+k-d,j],a[p,i+k-d,j+k-d]));
    end;
close(f);close(g);
end.