[常州市赛 2024] 密码

Luogu
IDLGB4226
Time1000ms
Memory512MB
DifficultyP3
模拟2024江苏枚举循环结构科创活动小学活动
小 Y 发现了一个密码,这个密码的初始形式排列成了 $n\times n$ 的矩阵的形式。小 Y 需要首先按照蛇形矩阵的方式解读这个密码,如下图所示,从第一行第一个字符开始,第一步向右走,然后向左下方走到边界,接下去沿着边界走一步(可能向下可能向右),再向右上方走到边界,接下去沿着边界走一步(可能向下可能向右)……不断重复这个过程直到走到第 $n$ 行的第 $n$ 列停止。 ![](https://cdn.luogu.com.cn/upload/image_hosting/meopj1yd.png) 小 Y 把走过路径的字符串起来,就得到了一个长度为 $n\times n$ 的字符串 $\tt THISISAVERYGOODPOEMITHINK$,这是密码的中间形式,而小 Y 需要把这个密码排列成最终形式,最终形式是把这个中间形式的密码按照螺旋矩阵的方式填入一个 $n\times n$ 的矩形中,如下图所示,从第一行第一个字符开始,第一步开始一直向右走直到碰到边界或是已有字符 ,再向下走到边界或已有字符,再向左走到边界或已有字符,再向上走到边界或已有字符……不断重复这个过程直到无路可走停止。 ![](https://cdn.luogu.com.cn/upload/image_hosting/wcb1pbkq.png) 每走一步就往当前位置中填入一个密码中间形式字符串中的字符,就得到了密码的最终形式。 现在给出密码的初始形式,小 Y 想让你告诉他密码的最终形式。 ## Input 第 $1$ 行 $1$ 个正整数 $n$,表示密码初始形式矩阵的大小。 第 $2\sim n+1$ 行每行 $n$ 个字符(字符都是大写字母)表示密码的初始形式。 ## Output $n$ 行每行 $n$ 个大写字母表示密码的最终形式。 [samples] ## Background 搬运自 <http://czoj.com.cn/p/952>。数据为民间数据。 ## Note 对于所有数据,$1\le n\le 500$,字符均为大写字母。 |测试点编号|$n$|特殊性质| |:-:|:-:|:-:| |$1\sim3$|$\le 2$|无| |$4$|$\le100$|$\alpha$| |$5\sim7$|$\le 5$|无| |$8\sim10$|$\le500$|无| - 特殊性质 $\alpha$:保证矩阵中的所有字符完全相同。
Samples
Input #1
2
AB
CD
Output #1
AB
DC
Input #2
4
ABCD
EFGH
IJKL
MNOP
Output #2
ABEI
KHLF
NPOC
MJGD
Input #3
5
THSAD
IIVOP
SEOOH
RGETI
YMINK
Output #3
THISI
POEMS
DNKIA
OIHTV
OGYRE
API Response (JSON)
{
  "problem": {
    "name": "[常州市赛 2024] 密码",
    "description": {
      "content": "小 Y 发现了一个密码,这个密码的初始形式排列成了 $n\\times n$ 的矩阵的形式。小 Y 需要首先按照蛇形矩阵的方式解读这个密码,如下图所示,从第一行第一个字符开始,第一步向右走,然后向左下方走到边界,接下去沿着边界走一步(可能向下可能向右),再向右上方走到边界,接下去沿着边界走一步(可能向下可能向右)……不断重复这个过程直到走到第 $n$ 行的第 $n$ 列停止。 ![](https:",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P3"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGB4226"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "小 Y 发现了一个密码,这个密码的初始形式排列成了 $n\\times n$ 的矩阵的形式。小 Y 需要首先按照蛇形矩阵的方式解读这个密码,如下图所示,从第一行第一个字符开始,第一步向右走,然后向左下方走到边界,接下去沿着边界走一步(可能向下可能向右),再向右上方走到边界,接下去沿着边界走一步(可能向下可能向右)……不断重复这个过程直到走到第 $n$ 行的第 $n$ 列停止。\n\n![](https:...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments