#P669. 方形最大值

方形最大值

题目描述

给定 n×nn\times n 个整数 ai,ja_{i,j} 构成一个方阵,给定 kk,请求出原方阵中每个 k×kk\times k 的小方阵的最大值分别是多少。

输入格式

第一行:两个整数 nn 与 kk。 第二行到第 n+1n+1 行:第 i+1i+1 行有 nn 个整数表示 ai,1a_{i,1} 到 ai,na_{i,n}。

输出格式

共 n−k+1n-k+1 行:每行 n−k+1n-k+1 个数字,其中第 ii 行 第 jj 列的数字表示原方阵中 ai,ja_{i,j} 到 ai+k−1,j+k−1a_{i+k-1,j+k-1} 的最大值。

5 3
1 2 3 4 5
1 2 3 4 5
5 4 3 2 1
5 4 3 2 1
1 1 1 1 1
5 4 5
5 4 5
5 4 3

数据范围

  • 对于 30%30\% 的数据,n≤30n\leq 30;
  • 对于 60%60\% 的数据,n≤300n\leq 300;
  • 对于 100%100\% 的数据,1≤k≤n≤20001\leq k\leq n\leq 2000。
  • 1≤ai,j≤1,000,000,0001\leq a_{i,j}\leq 1,000,000,000