Pagini recente » Cod sursa (job #1890848) | Cod sursa (job #174868) | Cod sursa (job #1040548) | Cod sursa (job #1536481) | Cod sursa (job #387066)
Cod sursa(job #387066)
#include <cstdio>
#define file_in "struti.in"
#define file_out "struti.out"
int n,m,p,i,j,k,l,max,min,pmax,dx,dy,nrp;
int a[1010][1010];
int main()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d %d", &n, &m, &p);
for (i=1;i<=n;++i)
for (j=1;j<=m;++j)
scanf("%d", &a[i][j]);
/*for (i=0;i<=n+1;++i)
a[0][i]=a[i][m]=0x3f3f3f3f;
for (i=0;i<=m+1;++i)
a[i][0]=a[n][i]=0x3f3f3f3f;
*/
while(p--)
{
scanf("%d %d", &dx, &dy);
if (dx==dy)
{
nrp=0;
pmax=0x3f3f3f3f;
for (i=1;i<=n-dx+1;++i)
for (j=1;j<=m-dy+1;++j)
{
min=0x3f3f3f3f;
max=0;
for (k=i;k<=dx+i-1;++k)
for (l=j;l<=dy+j-1;++l)
{
if (a[k][l]>max) max=a[k][l];
if (a[k][l]<min) min=a[k][l];
}
if (max-min<pmax)
{
pmax=max-min;
nrp=1;
}
else
if (max-min==pmax)
nrp++;
}
printf("%d %d\n", pmax,nrp);
}
else
{
nrp=0;
pmax=0x3f3f3f3f;
for (i=1;i<=n-dx+1;++i)
for (j=1;j<=m-dy+1;++j)
{
min=0x3f3f3f3f;
max=0;
for (k=i;k<=dx+i-1;++k)
for (l=j;l<=dy+j-1;++l)
{
if (a[k][l]>max) max=a[k][l];
if (a[k][l]<min) min=a[k][l];
}
if (max-min<pmax)
{
pmax=max-min;
nrp=1;
}
else
if (max-min==pmax)
nrp++;
}
// nrp=0;
//pmax=0x3f3f3f3f;
for (i=1;i<=n-dy+1;++i)
for (j=1;j<=m-dx+1;++j)
{
min=0x3f3f3f3f;
max=0;
for (k=i;k<=dy+i-1;++k)
for (l=j;l<=dx+j-1;++l)
{
if (a[k][l]>max) max=a[k][l];
if (a[k][l]<min) min=a[k][l];
}
if (max-min<pmax)
{
pmax=max-min;
nrp=1;
}
else
if (max-min==pmax)
nrp++;
}
printf("%d %d\n", pmax,nrp);
}
}
fclose(stdin);
fclose(stdout);
return 0;
}