P9670 [ICPC 2022 Jinan R] Frozen Scoreboard

题目描述

2000 年以前的秦朝,曾举办过一次 ICPC 比赛。比赛中有 $m$ 道题,$n$ 个团队。我们知道每个队完成了多少道题以及其历史记录的总用时。这些称作该团队的结果,但是我们不知道他们每道题是否完成、用时多久。 最近,我们发现了每个队**冻结的计分板**。从该计分板上,我们可以看到每个队在比赛中的提交情况,但是不知道在最后一小时内提交的判分。一些人发现,对于一些队来说,他们冻结的计分板可能与他们在历史记录中的最终成绩相矛盾。 请根据最终得分和冻结的计分板,为各队创建一个与其最终结果和冻结的计分板一致的最终计分板。 按照以下规则来计算计分板和总分: 对于给定的队伍 $i$,它**最终的计分板**是一个 $m$ 元数组,其中第 $j$ 个元素给出队伍 $i$ 在第 $j$ 题上的提交信息。 - 如果队伍 $i$ 没有提交问题 $j$,输出 ```.```。 - 如果队伍 $i$ 对问题 $j$ 提交了 $x$ 次但均未通过,输出 $-x$。 - 否则,考虑队伍 $i$ 在问题 $j$ 的所有评测结果。每次提交都有一个提交时间,设第一个通过的评测是第 $x$ 次评测,在第 $y$ 分钟时提交。输出 $+x/y$,其中 $0\leq y\leq299$。 在最终计分板上,只考虑第一次通过的提交。同一分钟内可能有多次提交。 一个队伍的最终得分是该队伍完成了多少道题,即该队最终计分板上 ```+``` 的个数。 一个队伍总用时按如下方式计算。如果队伍 $i$ 在第 $y$ 分钟完成了第 $j$ 道题,在完成前有 $x-1$ 次失败的提交(即最终计分板上第 $j$ 个问题的数为 $+x/y$),该问题的用时记为 $20(x-1)+y$。 如果队伍 $i$ 没有完成第 $j$ 道题,该问题的用时记为 $0$,无论是否提交过。队伍 $i$ 的总时间是每道题用时的总和。

输入格式

第一行包括两个整数 $n,m\;(1\leq n\leq1000,1\leq m\leq13)$,为队伍个数和题目个数。 接下来 $n$ 组,描述每个队伍的最终得分和冻结的计分板。 第 $i$ 组表示队伍 $i$。每一组中,第一行包括两个整数 $a_i,b_i\;(0\leq a_i\leq m,0\leq b_i\leq10^5)$,为队伍 $i$ 在**整场比赛中**完成的题目个数和每道题的用时。这两个数字是比赛的最终结果。 接下来 $m$ 行,描述队伍 $i$ 在计分板上的内容。对于任意 $1\leq j\leq m$, - 如果第 $j$ 行是 $+\,x/y\;(1\leq x\leq100,0\leq y\leq239)$,表示队伍 $i$ 在第 $y$ 分钟,第 $x$ 次提交时通过了题 $j$。 - 如果第 $j$ 行是 $?\,x\,y\;(1\leq x\leq y\leq100)$,表示队伍 $i$ 没有在前四个小时中作出题 $j$。这个队伍提交了 $y$ 次,其中 $x$ 次在最后一小时内。最后一小时内且通过该题的提交记录会在**冻结的计分板**上显示,但不会在**最终计分板**上显示。 - 如果第 $j$ 行是 $-x$,表示队伍 $i$ 没有在前四小时内作出题 $j$。这个队伍在最后一个小时前提交了 $x\,(1\leq x\leq100)$ 次,且没有在最后一小时内做出题 $j$。 - 如果第 $j$ 行是一个单一的字符 ```.```,表示队伍 $i$ 没有提交过题 $j$。

输出格式

对于每个队伍 $i$,如果最终结果和冻结的计分板相矛盾,输出一行 $\texttt{No}$。否则,第一行输出 $\texttt{Yes}$,接下来 $m$ 行,描述一种队伍 $i$ 可能的计分板,满足最终结果和冻结的计分板。其中,第 $j$ 行应该包括: - $+\,x/y\,(1\leq x\leq100,0\leq y\leq299)$,如果队伍 $i$ 在第 $x$ 次提交,第 $y$ 分钟完成了题 $j$,在这之前没有队伍通过这道题。不要在字符 ```/``` 前后输出多余的空格。 - $-x\,(1\leq x\leq100)$,如果队伍 $i$ 提交了 $x$ 次题 $j$,且均未通过。 - ```.```,如果队伍 $i$ 没有提交题 $j$。 如果有多种可能的答案,任意输出一种即可。 **请注意,在输入和输出中,```?,+,-``` 后总有一个空格。**

说明/提示

Here is an example of the frozen scoreboard in the first sample. ![](https://cdn.luogu.com.cn/upload/image_hosting/jw4c3965.png)