2418. day11-C 降维打击

给定一个 n \times m 的整数矩阵 a

矩阵的边界元素均为 0,即满足 i=1i=nj=1j=m 的位置均为 0;所有非边界元素均不为 0

对于每个非边界位置 (i,j),求它周围 8 个位置的数字之和。这里“周围”是指与 (i,j) 共享一条边或一个顶点的位置,即:

\sum_{x=i-1}^{i+1}\sum_{y=j-1}^{j+1}a_{x,y}-a_{i,j}.

请按照原矩阵中的行列顺序输出所有非边界位置的答案。

本题要求使用一维数组存储矩阵,不得使用 std::vector 等动态序列容器。

输入

第一行包含两个整数 n,m,表示矩阵的行数和列数。

接下来 n 行,每行包含 m 个整数,其中第 i 行的第 j 个整数为 a_{i,j}

输入保证:

  • 1 \le n,m \le 10^6
  • n\times m \le 10^6
  • -10^9 \le a_{i,j} \le 10^9
  • 所有边界元素均为 0
  • 所有非边界元素均不为 0

输出

依次输出 i=2,3,\ldots,n-1 对应的各行。每行依次输出 j=2,3,\ldots,m-1 对应的邻域和,相邻整数之间用一个空格分隔。

如果 n<3m<3,矩阵中没有非边界位置,此时输出为空。

样例

标准输入 复制文本
4 4
0 0 0 0
0 1 2 0
0 9 8 0
0 0 0 0
标准输出 复制文本
19 18
11 12

提示

位置 (2,2) 周围的非零数字为 2,9,8,它们的和为 19。其余位置按相同方式计算。

本题采用 IOI 赛制。每个子任务中的所有测试点全部通过后,才能获得该子任务的分数。

子任务分值附加限制
15\min(n,m)\le 2
25\min(n,m)=3
310n,m\ge 4,所有非边界元素相等,且 abs(a_{i,j})\le 10^8
410n,m\le 50,且 abs(a_{i,j})\le 10^4
510abs(a_{i,j})\le 10^8
610无附加限制

登录以提交代码。
单点时限 2 秒
内存限制 128 MB
提交 56
通过 25

上一题 2415
已经是最后一题了