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 翻译