CF818B Permutation Game
题目描述
$n$ 个小孩围成一圈玩游戏。小孩的编号按顺时针顺序构成了一个长度为 $n$ 的排列 $a_{1},a_{2},...,a_{n}$。这是一个整数序列,其中 $1$ 到 $n$ 每个整数都恰好出现一次。
游戏共进行 $m$ 步。在每一步中,当前编号为 $i$ 的领导小孩(leader)从下一个人开始,顺时针数出 $a_{i}$ 个人。被领导最后数到的那个人成为新的 leader。
你会得到 $l_{1},l_{2},...,l_{m}$ 这 $m$ 个数,分别表示每一步开始时的 leader 的编号。编号为 $l_{1}$ 的小孩是游戏的第一个 leader。
请编写程序,恢复一种可能的排列 $a_{1},a_{2},...,a_{n}$。如果存在多解,输出任意一个。如果不存在解,输出 $-1$。
输入格式
第一行包含两个整数 $n$、$m$($1 \leq n, m \leq 100$)。
第二行包含 $m$ 个整数 $l_{1},l_{2},...,l_{m}$($1 \leq l_{i} \leq n$),表示每一步开始时 leader 的编号。
输出格式
输出一组长度为 $n$ 的排列 $a_{1},a_{2},...,a_{n}$,使得该排列能够使得游戏过程中的 leader 依次为 $l_{1},l_{2},...,l_{m}$。如果有多组解,输出任意一组。
如果不存在满足条件的排列,输出 $-1$。
说明/提示
我们以第一个样例说明领导权的传递:
- 小孩 $2$ 首先为 leader。
- 领导权从 $2$ 传给 $2 + a_{2} = 3$。
- 领导权从 $3$ 传给 $3 + a_{3} = 5$。由于 $5 > 4$,顺时针回到 $1$。
- 领导权从 $1$ 传给 $1 + a_{1} = 4$。
- 领导权从 $4$ 传给 $4 + a_{4} = 8$,在环上仍然是 $4$。
由 ChatGPT 5 翻译