CF1033C.Permutation Game

传统题 时间 2000 ms 内存 256 MiB 8 尝试 25 已通过 9 标签

Permutation Game

题目描述

一天劳累之后,Alice 和 Bob 决定玩一个小游戏。游戏棋盘由 nn 个格子组成,排成一行,编号从 11nn,每个格子内包含一个 11nn 之间的数字 aia_i。此外,任意两个格子内的数字都不相同。

一个棋子被放在某个格子上。他们轮流移动棋子,Alice 先手。当前玩家可以将棋子从第 ii 个格子移动到第 jj 个格子,只有当以下两个条件同时满足时才允许移动:

  • 新格子 jj 内的数字必须严格大于原格子 ii 内的数字(即 aj>aia_j > a_i);
  • 本次移动的距离必须是原格子内数字的倍数(即 ijmodai=0|i-j| \bmod a_i = 0)。

无法进行移动的一方判负。对于每一个可能的初始位置,若双方都采取最优策略,判断谁能获胜。

可以证明,游戏总是有限的,即总存在一方有必胜策略。

输入格式

第一行包含一个整数 nn1n1051 \le n \le 10^5),表示格子的数量。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n1ain1 \le a_i \le n)。此外,任意 iji \neq j 都有 aiaja_i \neq a_j

输出格式

输出一个长度为 nn 的字符串 ss,其中第 ii 个字符表示若棋子初始放在第 ii 个格子时的游戏结果。如果 Alice 能获胜,则 sis_i 等于 "A";否则,sis_i 等于 "B"。

说明/提示

在第一个样例中,若 Bob 将棋子放在数字(不是位置):

  • 11:Alice 可以移动到任意数字。她可以选择移动到 77,此时 Bob 无法再移动,Alice 获胜。
  • 22:Alice 可以移动到 3355。若她移动到 55,Bob 可以移动到 88 并获胜。如果她选择移动到 33,则她获胜,因为 Bob 只能移动到 44,而 Alice 可以从 44 移动到 88
  • 33:Alice 只能移动到 44,之后 Bob 可以移动到 88 并获胜。
  • 445566:Alice 可以直接移动到 88 并获胜。
  • 7788:Alice 无法移动,直接失败。

由 ChatGPT 4.1 翻译

样例

8
3 6 5 4 2 7 1 8
BAAAABAB
15
3 11 2 5 10 9 7 13 15 8 4 12 6 1 14
ABAAAABBBAABAAB

在线编程 IDE

建议全屏模式获得最佳体验