P5819 【L&K R-03】音游大计算

题目描述

小 K 喜欢玩音游,特别是一款叫做 dimou 的音游。dimou 的判定机制是这样的:dimou 是单面(不像某 dy 开头的东西)下落式音游。具体来说,在屏幕底端有一条判定线。一首曲子有若干打击点(即 key,可以看做一条与判定线平行的只有左右宽度的线段),每个 key 会在某个时刻从顶端匀速下落,而玩家需要尽量精准地在每个 key 与判定线重合时点击它。 当然,玩家有可能在 key 接触判定线之前就点击了,也可能在 key 已经落到判定线之下时才点击。这时候,就需要考虑游戏的判定系统,以统计玩家完成一首曲子的情况。dimou 有三种判定:perfect,good 和 miss。总共有六种情况—— 情况 $1$:玩家点击的时间在某个 key 下落至其与判定线重合的时间的前 $1s$ 或更多(记为 $\triangle t\ge1$,下同),则不会产生任何判定效果(等于无意义点击); 情况 $2$:$0.6\le\triangle t

输入格式

第一行两个正整数 $n,m$,代表 key 数量与小 K 的点击数。 紧接着 $n$ 行,每行三个浮点数(小数位数不超过 $5$ 位)$t_i,a_i,b_i$,分别表示每个 key 从曲子开始算起到达判定线的时间,其左端点位置,右端点位置。 紧接着 $m$ 行,每行两个浮点数(小数位数不超过 $5$ 位)$T_i,x_i$,分别表示小 K 每次点击从曲子开始算起的时间和其位置。

输出格式

一行,输出四个非负整数,两两用单个空格隔开,分别代表 perfect 数,good 数,miss 数和 max combo。

说明/提示

样例 $3$:[输入](https://www.luogu.com.cn/paste/qrbt8fnq),[输出](https://www.luogu.com.cn/paste/evke45h8)。 样例 $4$:[输入](https://www.luogu.com.cn/paste/a71namso),[输出](https://www.luogu.com.cn/paste/jgpcani2)。 【样例解释】 对于样例 $1$:$5$ 个 key 产生的判定按时间顺序分别为 miss,good,perfect,good,miss。第一次和最后一次点击不产生判定效果。 对于样例 $2$:按时间顺序,第一次点击($T=0.0$),可能产生判定效果的有(按输入顺序)第 $1,2,4$ 个 key。第 $1,2$ 个 key 同时到达判定线,第 $4$ 个 key 比第 $1,2$ 个 key 高。因此第一次点击只让第 $1,2$ 个 key 产生 perfect 判定。第二次点击($T=0.6$),与其垂线有交点的有第 $3,4$ 个 key,但第 $3$ 个 key 此时已经产生 miss 判定并消失,因此这次点击让第 $4$ 个 key 产生一次 perfect 判定,此时在同一时间出现了两个判定 perfect,miss,按照规则先处理 miss 再处理 perfect。所以,所有判定按时间顺序分别是 perfect,perfect,miss,perfect。容易发现 miss 把判定序列分成了两段,第一段的 combo 为 $2$,第二段的 combo 为 $1$,所以 max combo 为 $2$。 【数据范围】 对于 $30\%$ 数据,$n,m\le5000$。 对于另外 $20\%$ 数据,$n\le5000$,$m\le114514$。 对于另外 $10\%$ 数据,所有 $a_i$ 相等,所有 $b_i$ 相等。 对于另外 $10\%$ 数据,$t_i,T_i,a_i,b_i,x_i$ 在 $[0,10^4]$ 中随机生成。 对于 $100\%$ 数据,$1\le n,m\le114514$,$0\le t_i,T_i,a_i,b_i,x_i\le 10^4$,$a_i\le b_i$。