Cod sursa(job #122353)

Utilizator RobybrasovRobert Hangu Robybrasov Data 11 ianuarie 2008 21:18:15
Problema Plantatie Scor 40
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.2 kb
var a:array[1..500,1..500] of longint;
    v:array[1..500] of longint;
    m,n,i,j,k,l,d,kont:integer;
    max,maxf:longint;
    f,g:text;

function maxim(li,ls:integer):longint;
var m:integer;
    max1,max2:longint;
begin
  if li=ls then maxim:=a[d,li]
  else
    begin
      m:=(li+ls) div 2;
      max1:=maxim(li,m);
      max2:=maxim(m+1,ls);
      if max1>max2 then maxim:=max1
                   else maxim:=max2;
    end;
end;

function maxvect(li,ls:integer):longint;
var m:integer;
    max1,max2:longint;
begin
  if li=ls then maxvect:=v[li]
  else
    begin
      m:=(li+ls) div 2;
      max1:=maxvect(li,m);
      max2:=maxvect(m+1,ls);
      if max1>max2 then maxvect:=max1
                   else maxvect:=max2;
    end;
end;

begin
  assign(f,'plantatie.in');
  reset(f);
  read(f,n,m);
  for i:=1 to n do
    for j:=1 to n do
      read(f,a[i,j]);
  assign(g,'plantatie.out');
  rewrite(g);
  for l:=1 to m do
    begin
      max:=0; maxf:=0; kont:=0;
      read(f,i,j,k);
      for d:=i to i+k-1 do
        begin
          inc(kont);
          v[kont]:=maxim(j,j+k-1);
        end;
      writeln(g,maxvect(1,kont));
    end;
  close(f);
  close(g);
end.