#3706. 数字面包卷 (bread)

数字面包卷 (bread)

时间限制:1000 ms;空间限制:128 MB。

题目描述

魔法少女小樱喜欢吃面包卷。她观察到面包卷是沿着螺旋线卷起来的。

于是魔法少女想到了一个问题:给定一个 n×nn\times n 的方格,从左下角开始,按照“向右、向上、向左、向下”的顺序沿边界螺旋前进,依次填入 1,2,…,k1,2,\ldots,k。每当当前方向无法继续前进时,就转向下一个方向;已经填过的格子不能再次经过。

之后询问每列上的数字加和是多少。

例如,在 5×55\times5 的方格中填入 11 到 2020 后,从上到下得到:

13 12 11 10  9
14  .  .  .  8
15  .  . 20  7
16 17 18 19  6
 1  2  3  4  5

其中 . 表示尚未填入数字的格子。

上面图中:

第一列的和为 13 + 14 + 15 + 16 + 1 = 59

第二列的和为 12 + 17 + 2 = 31

第三列的和为 11 + 18 + 3 = 32

第四列的和为 10 + 20 + 19 + 4 = 53

第五列的和为 9 + 8 + 7 + 6 + 5 = 35

输入格式

在文件 bread.in 中读入。

一行两个正整数 n,kn,k,含义如上所述。

输出格式

在文件 bread.out 中输出。

一行 nn 个非负整数,依次表示从左到右每列上的数字和。

样例

样例输入 #1

5 20

样例输出 #1

59 31 32 53 35

样例输入 #2

10 100

样例输出 #2

289 493 599 639 645 645 627 559 409 145

数据范围

本题共 2020 个测试点,每点 55 分。

测试点编号 n数据范围 k数据范围
1∼61\sim6 1≤n≤10001\le n\le1000 1≤k≤n21\le k\le n^2
7∼107\sim10 1≤n≤2000001\le n\le200000 1≤k≤n1\le k\le n
11∼2011\sim20 1≤k≤n21\le k\le n^2