AT_maximum_cup_2018_g Sparrow's trick
题目描述
最近,一种名为「Saitoon」的双人对战游戏风靡街头。
「Saitoon」比赛——「Maximum-Saitoon-cup」(此赛事与 Maximum-cup-2018 无关)已经圆满结束,赢得了热烈反响。
作为比赛的组织者之一,埼大君负责检查由记录员提供的比赛结果。
比赛结果以 BNF 语法管理,规则如下:
- 比赛结果以 <CompetitionLog> 形式记录。
- 每场比赛被表示为 <GameResults>,强制分出胜负。
- 相邻两个 <PlayerData> 表示一场比赛的对手。
- <PlayerID> 是选手的唯一 ID。当为 <number> 时,表示具体数字;当为 <GameResults> 时,表示该比赛的胜者 ID。
- <WinningOrLosing> 指示选手在比赛中的输赢:o 表示胜利,x 表示失败。
- 选手的 ID 按照从左到右出现的 <number> 形式的 <PlayerID> 依次编号为 $1$ 到 $N$。
目前需要核对这些比赛结果与记录在案的「各选手获胜次数」数据。如果结果正确,那就大功告成。
不过,在进行这项工作时,埼大君发现部分比赛结果信息丢失。
幸运的是,他有「各选手获胜次数」这个数据,这使得恢复原本信息成为可能。然而,埼大君无力独自完成这项复杂工作,他便请求你来助力。
你的任务是根据已知的「选手获胜次数」数据,假设它们是正确无误的,来恢复比赛结果。
缺失的部分由「$ ? $」表示,需要你来填补这些空白。
输入格式
输入从标准输入中读取,格式如下:
> $ S $ $ N $ $ a_{1} $ $ a_{2} $ $ ... $ $ a_{N} $
第一行包含部分信息缺失的比赛结果。
第二行给出参赛选手的人数。
第三行以 $ a_{1} $ 到 $ a_{N} $ 的形式列出每名选手在比赛中的获胜次数。
输出格式
请输出一行,表示完整的比赛结果。
说明/提示
### 约束条件
- $ 12\ \leq\ |S|\ \leq\ 200 $
- $ 2\ \leq\ N\ \leq\ 16 $
- $ ? $ 的数量至少为 $1$,至多为 $\min(\ \frac{|S|}{2},50)$。
- 保证比赛结果的复原是唯一的。
### 示例说明 1
选手 ID 从左到右编号为 $1$ 到 $N$,因此第三个「$ ? $」应填入「$ 3 $」。根据恢复的比赛结果,编号为 $1$ 的选手胜 $2$ 场,编号为 $2$ 和 $3$ 的选手均未胜,编号为 $4$ 的选手胜 $1$ 场,这与已有数据一致。
### 示例说明 2
复原后的结果将是唯一确定的。
**本翻译由 AI 自动生成**