Cod sursa(job #252962)

Utilizator MihaiBunBunget Mihai MihaiBun Data 5 februarie 2009 11:00:35
Problema Struti Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.61 kb
program strutii;
var f,g:text;
    a:array[1..1000,1..1000] of integer;
    m,n,dx,dy,i,j,u,v,min,max,minim,k,p,nr:longint;
begin
  assign(f,'struti.in');
  assign(g,'struti.out');
  rewrite(g);
  reset(f);
  readln(f,m,n,p);
  for i:=1 to m do
    begin
      for j:=1 to n do read(f,a[i,j]);
      readln(f)
    end;
  for k:=1 to p do
   begin
     minim:=10000;
     nr:=0;
     readln(f,dx,dy);
     for i:=1 to m-dx+1 do
      for j:=1 to n-dy+1 do
        begin
        min:=10000;
        max:=-1;
        for u:=i to i+dx-1 do
          for v:=j to j+dy-1 do
            begin
              if min>a[u,v] then min:=a[u,v];
              if max<a[u,v] then max:=a[u,v]
            end;
        if (max-min)<minim then begin
                                 minim:=max-min;
                                 nr:=1
                                end
                           else if (max-min)=minim then nr:=nr+1
        end;
       if dx<>dy then
       begin
         for i:=1 to m-dy+1 do
      for j:=1 to n-dx+1 do
        begin
        min:=10000;
        max:=-1;
        for u:=i to i+dy-1 do
          for v:=j to j+dx-1 do
            begin
              if min>a[u,v] then min:=a[u,v];
              if max<a[u,v] then max:=a[u,v]
            end;
        if (max-min)<minim then begin
                                 minim:=max-min;
                                 nr:=1
                                end
                           else if (max-min)=minim then nr:=nr+1
        end;
       end;
     writeln(g,minim,' ',nr)
   end;
   close(f);
   close(g);
end.