各位大神啊,这个程序编译通过了,但是结果有问题啊
题目如下时限:1000ms 内存限制:10000K 总时限:3000ms
描述:
FJ有一大块土地,他希望在这片土地上找到一片最平坦的小块地方种植最好品种的玉米。
给定一个N*N (1<=N<=250)的矩阵,矩阵值表示土地海拔高度(0<=高度<=250,整数),给定整数B (1<=B<=N) ,K对坐标(xi,xj),
求由(xi,xj)为左上点,边长为 B的正方形的方框内,最大数和最小数之差.
(0<K<100000;另,1<=xi<=N-B,1<=yi<=N-B)
输入:
第1行:三个数字
N,B,K
第2--N+1行:
矩阵N*N
第N+1--N+K+1行:
点对xi,xj
输出:
K行输出
坐标(xi,xj)为左上点,边长为 B的正方形的方框内,最大数和最小数之差.
输入样例:
5 3 1
5 1 2 6 3
1 3 5 2 7
7 2 4 6 1
9 9 8 6 5
0 6 9 3 9
1 2
输出样例:
5
我的代码如下
#include<stdio.h>
void main()
{
int a,b,i,j,k,N,B,K,xi[250],xj[250],s[250][250],min[250],max[250];
printf("input N,B,K:\n");
scanf("%d %d %d",&N,&B,&K);
printf("input the N*N:\n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&s[i][j]);
for(k=0;k<K;k++)
scanf("%d %d",&xi[k],&xj[k]);
for(k=0;k<K;k++)
{
a=xi[k];
b=xj[k];
min[k]=s[a][b];
max[k]=s[a][b];
}
for(k=0;k<K;k++)
{
a=xi[k];
b=xj[k];
for(i=a;i<a+B;i++)
{
for(j=b;j<b+B;j++)
if(s[i][j]>max[k])
max[k]=s[i][j];
if(s[i][j]<min[k])
min[k]=s[i][j];
}
printf("%d\n",(max[k]-min[k]));
}
}