SHAOXIAOJ正在加载中...

2706: 2025AHCPC - 智能榜单

金币值:10 定数:16 时间限制:1.000 s 内存限制:128 M
解决:4 提交:16 正确率:25.00% 命题人:
点赞量:0 收藏量:0 题目类型:程序 来源/分类: 程序设计大赛

题目描述

         小明的教练在等待比赛结果的同时很担心小明本场比赛会不会打铁,所以就要求小杨开发出一套系统,通过 $AI$ 来预测本场比赛小明的打铁概率.

         这套系统接受从 $DomJudge$ 的评测状态输入,如“$AHCPC$ 队在 $200$ 分钟提交了一发 $A$ 题,评测结果是 $Accept$”,形式化的表示为“$AHCPC$ $200$ $A$ $AC$ ”,

         教练为你提供了整场比赛进行中的所有评测结果,要求你动态的使用 $AI$ 预测各队的排名情况和获奖情况.

输入

         第一行,两个整数 $T,N$,代表有 $T$ 组操作,本次比赛共有 $N$ 道题;

         第 $2 \sim T + 1$ 行,每行一组操作数,操作数共有两种,具体含义如下:


         $1. Judge \ Name \ Time \ Problem \ Status$

         代表评测机在 $Time$ 时刻完成了一次评测,评测的对象是队伍名为 $Name$ 的队伍提交的编号为 $Problem$ 的题,评测状态是 $Status$,其中,$Status$ 包括 $AC/RE/TLE/MLE/WA$,其中只有 $AC$ 是通过了此题,其余均为不同类型的错误.

         输入保证按照时间顺序给出评测记录.


         $2.query$

         要求你按照如下格式输出整个榜单.

         由于只有有效队伍对评奖产生影响,所以我们只需要考虑至少通过了一题的有效队伍.针对 $K$ 个有效队伍,共输出 $K$ 行.每一行包括 $Rank \ Name\ Total\_scores \ AC\_num \ Status \ Medal$,以一个空格相间隔.


         下面是一个例子:

1 AHCPC1 30 3 (+1,AC,10) (+1,AC,10) (+1,AC,10) (+1,TLE,100) (+1,WA,10) Gold
2 AHCPC2 240 3 (+1,AC,10) (+1,AC,10) (+2,AC,200) (+5,RE,200) (+1,MLE,10) Silver
3 AHCPC3 20 2 (+1,AC,10) (+1,AC,10) (+0,NA,0) (+0,NA,0) (+0,NA,0) Bronze

         其中,各分量含义如下:

         $Rank:$ 队伍排名,从 $1$ 开始计数.排名方式为: 以通过题目数为第一关键字降序排序,以对伍当前分数为第二关键字升序排序,若仍有相同情况,则按照队伍名字典序升序排序;

         $Name:$ 队伍名;

         $Total\_scores:$ 队伍当前分数;分数的计算方式为: $Score=$ 所有题目第一次通过的用时 $+$ 所有通过题目的罚时.队伍一次提交即通过的情况下无罚时,除此之外,每多提交一次,增加 $20$ 分钟罚时.一般地,如果队伍没有通过此题,则该题罚时不被记入.如果一个队伍在通过后反复提交,依然按照提交次数计算罚时.

         $AC\_num:$ 通过的题目数量,即评测状态下至少有一次 $AC$ 的题目数量.

         $Status:$ 共有 $N$ 个三元组,三元组以下列形式给出: $(+k,Status,Score)$.其中,$K$ 为本题的提交次数, $Status$ 和 $Score$ 是本题提交的状态和罚时,$Status$ 包括 $AC/RE/TLE/MLE/WA$ .

         若该题已通过,$Status$ 显示 $AC$ ,$Score$ 显示最早一次状态为 $AC$ 的评测记录时间;

         若该题未通过,$Status$ 显示最近一次评测记录的状态, $Score$ 显示该评测记录的时间.

         若该题未提交,则直接输出 $(+0,NA,0)$.

         $Medal:$ 给出当前有效队伍数 (至少通过了一题的队伍数量) 状态下,队伍数 $M$ 的 $\left \lceil M \times 10 \% \right \rceil (M \times 0.1$ 向上取整 $)$ 作为金奖 $(Gold)$ ,$M$ 的 $\left \lceil M \times 20 \% \right \rceil (M \times 0.2$ 向上取整 $)$ 作为银奖 $(Silver)$ ,$M$ 的 $\left \lceil M \times 30 \% \right \rceil (M \times 0.3$ 向上取整 $)$ 作为铜奖 $(Bronse)$ .金,银,铜奖依次发放,未获奖的队伍输出 $Fe$.

输出

         对于每次查询询问,按要求输出整个榜单.每一次查询询问的输出行数应当为当前有效队伍数(至少通过了一题的队伍数量).

样例输入    复制

19 5
judge AHCPC2 1 D RE
judge AHCPC2 2 D RE
judge AHCPC2 3 D RE
judge AHCPC2 4 D RE
judge AHCPC1 10 A AC
judge AHCPC1 10 B AC
judge AHCPC1 10 C AC
judge AHCPC1 10 E WA
judge AHCPC2 10 A AC
judge AHCPC2 10 B AC
judge AHCPC2 10 E MLE
judge AHCPC3 10 A AC
judge AHCPC3 10 B AC
judge AHCPC1 100 D TLE
judge AHCPC2 100 C WA
judge AHCPC3 100 B AC
judge AHCPC2 200 C AC
judge AHCPC2 200 D RE
query

样例输出    复制

1 AHCPC1 30 3 (+1,AC,10) (+1,AC,10) (+1,AC,10) (+1,TLE,100) (+1,WA,10) Gold
2 AHCPC2 240 3 (+1,AC,10) (+1,AC,10) (+2,AC,200) (+5,RE,200) (+1,MLE,10) Silver
3 AHCPC3 40 2 (+1,AC,10) (+2,AC,10) (+0,NA,0) (+0,NA,0) (+0,NA,0) Bronze

提示

样例说明


         由于题面印刷限制,在样例输出中出现了换行,在实际解题过程中,请保证每一个队伍的榜单输出到同一行.


数据规模与约定


         对于 $100\%$ 的数据, $1 \le T \le 10^5, 1 \le N \le 26$,保证查询操作在整个访问里出现不超过 $100$ 次,其中,题目编号为按序排列的大写英文字母,队伍名长度不超过 $100$,保证在同一时刻同一个队伍对于同一题目的评测记录不超过一条.