#B3858. [语言月赛 202309] 悬线

    ID: 10942 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 显示难度普及− 上传者: 标签>2023O2优化数组语言月赛

[语言月赛 202309] 悬线

背景

我们定义一个数字是质数,当且仅当它的因子仅有 11 和自身。特别的,11 不是质数。

题目描述

给定一个 n×mn \times m 的数字阵。约定第 ii 行第 jj 列上的数用 (i,j)(i,j) 表示。

我们称以第 ii 行第 jj 列的格子为底的悬线的长度是最大的 kk,满足 k≤ik \leq i 且 (i,j),(i−1,j),(i−2,j),…(i−k+1,j)(i,j), (i-1,j), (i-2,j),\dots(i-k+1,j) 这 kk 个数都是质数。特别的,如果 (i,j)(i, j) 本身不是质数,称以第 ii 行第 jj 列为底的悬线长度为 00。

对于每个格子,请你求出以它为底的悬线长度。

输入格式

本题单个测试点内有多组测试数据。输入的第一行是一个整数,表示数据组数 TT。

对每组数据,按如下格式输入:

每组数据第一行是两个整数,表示数字阵的行数 nn 和列数 mm。
接下来 nn 行,每行 mm 个整数,第 ii 行第 jj 个整数表示 (i,j)(i,j)。

输出格式

对每组数据,输出 nn 行,每行 mm 个用单个空格隔开的整数。第 ii 行第 jj 个数表示以第 ii 行第 jj 列的格子为底的悬线长度。

1
3 3
1 2 3
4 5 6
7 8 9
0 1 1
0 2 0
1 0 0

提示

数据规模与约定

  • 对 20%20\% 的数据,n=1n = 1。
  • 对 50%50\% 的数据,(i,j)≤100(i,j) \leq 100。
  • 对 80%80\% 的数据,(i,j)≤1000(i,j) \leq 1000。
  • 对 100%100\% 的数据,1≤n,m≤2001 \leq n, m \leq 200,1≤(i,j)≤1051 \leq (i,j) \leq 10^5,1≤T≤151 \leq T \leq 15。