#P9670. [ICPC 2022 Jinan R] Frozen Scoreboard

[ICPC 2022 Jinan R] Frozen Scoreboard

Description

2000 年以前的秦朝,曾举办过一次 ICPC 比赛。比赛中有 mm 道题,nn 个团队。我们知道每个队完成了多少道题以及其历史记录的总用时。这些称作该团队的结果,但是我们不知道他们每道题是否完成、用时多久。

最近,我们发现了每个队冻结的计分板。从该计分板上,我们可以看到每个队在比赛中的提交情况,但是不知道在最后一小时内提交的判分。一些人发现,对于一些队来说,他们冻结的计分板可能与他们在历史记录中的最终成绩相矛盾。

请根据最终得分和冻结的计分板,为各队创建一个与其最终结果和冻结的计分板一致的最终计分板。

按照以下规则来计算计分板和总分:

对于给定的队伍 ii,它最终的计分板是一个 mm 元数组,其中第 jj 个元素给出队伍 ii 在第 jj 题上的提交信息。

  • 如果队伍 ii 没有提交问题 jj,输出 .

  • 如果队伍 ii 对问题 jj 提交了 xx 次但均未通过,输出 x-x

  • 否则,考虑队伍 ii 在问题 jj 的所有评测结果。每次提交都有一个提交时间,设第一个通过的评测是第 xx 次评测,在第 yy 分钟时提交。输出 +x/y+x/y,其中 0y2990\leq y\leq299

在最终计分板上,只考虑第一次通过的提交。同一分钟内可能有多次提交。

一个队伍的最终得分是该队伍完成了多少道题,即该队最终计分板上 + 的个数。

一个队伍总用时按如下方式计算。如果队伍 ii 在第 yy 分钟完成了第 jj 道题,在完成前有 x1x-1 次失败的提交(即最终计分板上第 jj 个问题的数为 +x/y+x/y),该问题的用时记为 20(x1)+y20(x-1)+y。 如果队伍 ii 没有完成第 jj 道题,该问题的用时记为 00,无论是否提交过。队伍 ii 的总时间是每道题用时的总和。

Input Format

第一行包括两个整数 n,m  (1n1000,1m13)n,m\;(1\leq n\leq1000,1\leq m\leq13),为队伍个数和题目个数。

接下来 nn 组,描述每个队伍的最终得分和冻结的计分板。

ii 组表示队伍 ii。每一组中,第一行包括两个整数 ai,bi  (0aim,0bi105)a_i,b_i\;(0\leq a_i\leq m,0\leq b_i\leq10^5),为队伍 ii整场比赛中完成的题目个数和每道题的用时。这两个数字是比赛的最终结果。

接下来 mm 行,描述队伍 ii 在计分板上的内容。对于任意 1jm1\leq j\leq m

  • 如果第 jj 行是 +x/y  (1x100,0y239)+\,x/y\;(1\leq x\leq100,0\leq y\leq239),表示队伍 ii 在第 yy 分钟,第 xx 次提交时通过了题 jj

  • 如果第 jj 行是 ?xy  (1xy100)?\,x\,y\;(1\leq x\leq y\leq100),表示队伍 ii 没有在前四个小时中作出题 jj。这个队伍提交了 yy 次,其中 xx 次在最后一小时内。最后一小时内且通过该题的提交记录会在冻结的计分板上显示,但不会在最终计分板上显示。

  • 如果第 jj 行是 x-x,表示队伍 ii 没有在前四小时内作出题 jj。这个队伍在最后一个小时前提交了 x(1x100)x\,(1\leq x\leq100) 次,且没有在最后一小时内做出题 jj

  • 如果第 jj 行是一个单一的字符 .,表示队伍 ii 没有提交过题 jj

Output Format

对于每个队伍 ii,如果最终结果和冻结的计分板相矛盾,输出一行 No\texttt{No}。否则,第一行输出 Yes\texttt{Yes},接下来 mm 行,描述一种队伍 ii 可能的计分板,满足最终结果和冻结的计分板。其中,第 jj 行应该包括:

  • +x/y(1x100,0y299)+\,x/y\,(1\leq x\leq100,0\leq y\leq299),如果队伍 ii 在第 xx 次提交,第 yy 分钟完成了题 jj,在这之前没有队伍通过这道题。不要在字符 / 前后输出多余的空格。

  • x(1x100)-x\,(1\leq x\leq100),如果队伍 ii 提交了 xx 次题 jj,且均未通过。

  • .,如果队伍 ii 没有提交题 jj

如果有多种可能的答案,任意输出一种即可。

请注意,在输入和输出中,?,+,- 后总有一个空格。

1 13
7 951
+ 1/6
? 3 4
+ 4/183
- 2
+ 3/217
.
.
.
+ 2/29
+ 1/91
.
+ 1/22
.
Yes
+ 1/6
+ 2/263
+ 4/183
- 2
+ 3/217
.
.
.
+ 2/29
+ 1/91
.
+ 1/22
.
6 2
1 100
.
? 3 4
2 100
+ 1/1
+ 1/2
0 0
- 5
- 6
2 480
? 100 100
? 100 100
2 480
? 99 100
? 100 100
1 2000
? 100 100
? 100 100
No
No
Yes
- 5
- 6
Yes
+ 1/240
+ 1/240
No
Yes
+ 87/280
- 100