1452 : 排名预测

时间限制Time Limit 1 Sec 内存限制Memory Limit 256 MB 提交次数Submitted 0 Times 通过次数Solved 0 Times 标准评测Standard Judge

题目描述Description

你和你的队友们刚刚打完了一场 ICPC 竞赛,五个小时的时间已经耗尽了你的精力,并且队友把你的午餐吃了,你现在只能趴在桌子上看榜。目前还没有进行到颁奖仪式,因此榜还处于封榜状态中,也就是说,现在你知道你自己队伍在比赛全程的提交的时间和是否通过,而对于其他队伍,你知道他们进行每个提交的时间,并且你知道在封榜前其他队伍的每个提交是否通过,但你不知道在封榜后其他队伍的提交是否通过。

当你查看榜时,你发现了一个你很关注的队伍,你知道了他们队封榜前的每一次提交的时间与是否通过的状态,以及封榜后每一次提交的时间,你想知道他们队的排名会不会严格高于你们队。为了判断他们队排名严格高于你们队的可能性,你还想知道他们最少在封榜后过多少题,排名才会严格高于你们队。

在 ICPC 竞赛中,罚时按如下规则计算。假设比赛中通过m 道题目,编号为 1m。对于通过的题目 i,首次通过题目的时间记为 t_i,在通过之前对这道题进行了 c_i 次提交,则罚时 p 按如下规则计算。

p=\sum_{i=1}^m t_i+20\cdot c_i

本题中不考虑编译错误导致不计罚时的特殊因素。

对于两支队伍 AB,称 A 的排名严格高于 B,当且仅当 A 通过的题目数大于 B,或 AB 通过题目数相等,且 A 的罚时小于 B 的罚时。

输入格式Input

第一行一个整数 T1\le T\le 100),表示数据组数。

对于每组数据,第一行三个整数 n,a,b10\le n\le 15,1\le a\le n,0\le b\le 10^5),分别表示比赛有 n 道题,你们队在比赛结束时通过了 a 道题,罚时为 b

第二行一个整数 s0\le s\le 10^3),表示你关注的队伍在正常比赛中进行的提交数。

接下来 s 行,每行一个整数与两个字符串 t,p,v0\le t<300)。表示在第 t 分钟对 p 题进行了一次提交,结果为 v。保证提交按时间从小到大的顺序给出(这意味着当 t 相同时,提交顺序是输入所给的顺序),p 为前 n 个大写英文字母,且 v\in \{\texttt{ac}, \texttt{rj}, \texttt{pd}\}。a͡c 表示这次提交通过,r͡j 表示提交未通过,p͡d 表示这次提交处于封榜状态中,不知道此次提交是否通过。保证当 t<240 时,v 不是 p͡d,且当 t\ge 240 时,v 一定是 p͡d。

输出格式Output

对于每组数据,输出一行一个整数。如果你关注的队伍的最终排名不可能严格高于你们队,输出 -1,否则输出他们最少封榜后通过多少题,最终排名会严格高于你们队。

样例Sample

提示Hint

-

出题Author

UESTC

来源Source

广东省第二十二届大学生程序设计竞赛(GDCPC2025)