#110. 按规则生成数组模式

    ID: 110 Type: Default 1000ms 256MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>codingbatArray-3gesp2循环结构模拟

按规则生成数组模式

数组模式生成

题目背景

题目描述

给定一个整数 n0n \ge 0,创建一个长度为 nimesnn imes n 的数组,其模式如下所示(以 n=3n=3 为例):{0,0,1,0,2,1,3,2,1}\{0, 0, 1, 0, 2, 1, 3, 2, 1\}(添加空格是为了显示 nn 个组)。

该数组可以看作由 nn 个组组成,每个组的长度为 nn。设 AA 为该数组,A[idx]A[idx] 为其在索引 idxidx 处的值。

对于索引为 idxidx 的元素,设 k=idx/nk = \lfloor idx / n \rfloor 为组索引(从 00 开始计数),j=idx(modn)j = idx \pmod n 为组内索引(从 00 开始计数)。

A[idx]A[idx] 的值确定如下:

  • 如果 j=n1j = n-1,则 A[idx]=1A[idx] = 1
  • 否则(j<n1j < n-1): 设 val=njval = n - j。 设 min_k=n1jmin\_k = n - 1 - j。 如果 kmin_kk \ge min\_k,则 A[idx]=valA[idx] = val。 否则(k<min_kk < min\_k),则 A[idx]=0A[idx] = 0

输入格式

输入以如下格式从标准输入中给出。

一个整数 nn

输出格式

输出以如下格式输出到标准输出中。

生成的数组,以整数列表的形式输出。

样例

3
[0, 0, 1, 0, 2, 1, 3, 2, 1]
2
[0, 1, 2, 1]
4
[0, 0, 0, 1, 0, 0, 2, 1, 0, 3, 2, 1, 4, 3, 2, 1]

样例解释

数据范围

每个测试用例的时间限制为 1 秒,内存限制为 1024 KiB。