2130973_wa.c

来自「北大大牛代码 1240道题的原代码 超级权威」· C语言 代码 · 共 57 行

C
57
字号
# include <stdio.h>

int K, B, N;
int farm[251][251];
int left[251][251];

void find(int r,int l)
{
	int i, j;
	int min, max;

	min = 10000;max = -1;
	for(i = r-1; i < r-1+B; i++)
	{
		for(j = l-2+B; j >= l-1;)
		{
			if(farm[i][j]>max)
				max = farm[i][j];
			j = left[i][j]-1;
		}
		for(j = l-2+B; j >= l-1;)
		{
			if(farm[i][left[i][j]]<min)
				min = farm[i][left[i][j]];
			j = left[i][j]-1;
		}
	}
	printf("%d\n",max-min);
}

void input()
{
	int i, j, p;
	int r, l;

	scanf("%d%d%d",&N,&B,&K);
	for(i = 0; i < N; i++)
		for(j = 0; j < N; j++)
		{
			scanf("%d",&farm[i][j]);
			p = j-1;
			while(p>=0&&farm[i][p]<=farm[i][j])
				p = left[i][p] - 1;
			left[i][j] = p+1;
		}
	for(i = 0; i < K; i++)
	{
		scanf("%d%d",&r,&l);
		find(r,l);
	}
}

int main()
{
	input();
	return 1;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?