Type: Default 2000ms 512MiB

[R70E]裁决

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

时空限制

2S/512M

题目描述

给定一个长度为 nn 的字符串 ss,其下标从 00 开始,且每个字符均为 ABC

这三种字符之间存在如下克制关系:

  • A 战胜 B
  • B 战胜 C
  • C 战胜 A

两名玩家将进行 nn 轮对战,轮次编号依次为 0,1,,n10, 1, \dots, n - 1

对于一组给定的起始位置 (i,j)(i, j)(其中 0i,j<n0 \le i, j < n),在第 kk 轮(0k<n0 \le k < n)对战中:

  • 第一名玩家选择字符:s(i+k)modns_{(i + k)\bmod n}
  • 第二名玩家选择字符:s(j+k)modns_{(j + k)\bmod n}

每轮得分规则如下:

  • 若第一名玩家选择的字符战胜第二名玩家选择的字符,则第一名玩家赢得该轮,并获得 kk 分。
  • 否则(两名玩家选择相同字符,或第二名玩家的字符战胜第一名玩家的字符),第一名玩家在该轮获得 00 分。

定义 W(i,j)W(i, j) 为第一名玩家在上述 nn 轮对战中获得的总得分(即赢得的所有轮次编号 kk 的累加和)。如果第一名玩家没有赢得任何一轮,则总积分为 00

请计算所有满足 0i,j<n0 \le i, j < nW(i,j)W(i, j)

格式

输入格式

第一行包含一个正整数 nn,表示字符串 ss 的长度。

第二行包含一个长度为 nn 的字符串 ss。字符串仅由字符 ABC 组成。

输出格式

输出 nn 行,每行包含 nn 个由空格分隔的整数。

i+1i + 1 行的第 j+1j + 1 个整数应为 W(i,j)W(i,j),其中 0i,j<n0 \le i, j < n

样例

样例输入 #1

3
ABC

样例输出 #1

0 3 0
0 0 3
3 0 0

样例解释 #1

(i,j)=(0,1)(i,j)=(0,1) 时,第一名玩家依次选择 ABC,第二名玩家依次选择 BCA。第一名玩家赢得全部三轮,总分为 0+1+2=30 + 1 + 2 = 3,因此 W(0,1)=3W(0,1) = 3

同理,W(1,2)=W(2,0)=3W(1,2) = W(2,0) = 3。对于其余六组起始位置,第一名玩家没有赢得任何一轮,因此对应的 W(i,j)W(i,j) 均为 00

数据规模

注意:你只有通过了子任务的所有测试点,才能获得对应子任务的分数。

子任务编号 分数 nn\le
11 3030 100100
22 7070 20002000

对于 100%100\% 的数据,满足 1n20001 \le n \le 2000,字符串 ss 的长度为 nn,且仅由字符 ABC 组成。

代码源挑战赛 Round 70

Not Attended
Status
Done
Rule
DMY
Start at
2026-7-17 20:00
End at
2026-7-17 21:30
Duration
1.5 hour(s)
Host
Partic.
369