F. 自走棋

    传统题 1000ms 256MiB

自走棋

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“赛后递交”以递交本题。

题目描述

小Z和小K都迷上了自走棋这个游戏,他们设计了一个字符串上的自走棋。

这个字符串 SS 长度为 nn,仅由 A/B/CA/B/C 三种字符构成。其中有胜负关系:

  • A>B
  • B>C
  • C>A

A>BA>B 表示 AA 战胜 BB,其余类似。

小Z和小K只需要分别挑选自己的起点 i,ji,j,然后他们各自的英雄就会以 Si,SjS_i,S_j 为起点进行回合作战,每个回合两个英雄会依次向后挪一格,如果到了结尾就重新从 S0S_0 开始循环。

一共会进行 kk(从0开始)回合, 每个回合小Z获胜就可以得 kk 分。如:

  1. 第 00 回合是 SiS_i 与 SjS_j 作战,如果 SiS_i 能赢小Z就会得 00 分
  2. 第 11 回合是 Si+1S_{i+1} 与 Sj+1S_{j+1} 作战,如果 Si+1S_{i+1} 能赢小Z就会得 11 分
  3. 第 22 回合是 Si+2S_{i+2} 与 Sj+2S_{j+2} 作战,如果 Si+2S_{i+2} 能赢小Z就会得 22 分
  4. ...

注意,只有小Z获胜小Z才可得分,如果平局或者小Z输了他也不会扣分。

记 f(i,j)f(i,j) 为小Z小K分别选取的起点为 i,ji,j 时,小Z获得的分数,求出所有情况下的 f(i,j)f(i,j)

输入格式

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

第二行包含一个长度为 nn 的字符串 SS。字符串仅由字符 A、B 和 C 组成。

输出格式

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

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

输入输出样例

3
ABC
0 3 0
0 0 3
3 0 0

样例 #1\tt \#1说明

当 (i,j)=(0,1)(i,j)=(0,1) 时,小Z依次选择 A、B、C,小K依次选择 B、C、A。小Z赢得全部三轮,总分为 0+1+2=30 + 1 + 2 = 3,因此 f(0,1)=3f(0,1) = 3。

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

数据范围

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

对于 100%100\% 的数据,满足 1≤n≤20001 \le n \le 2000,字符串 ss 的长度为 nn,且仅由字符 A、B 和 C 组成。

【AC-014-Div3】语法组月赛 || Round · 14

未参加
状态
已结束
规则
IOI
题目
6
开始于
2026-9-1 0:00
结束于
2026-9-10 0:00
持续时间
3 小时
主持人
参赛人数
4