P12034 [USTCPC 2025] Introduction to ICPC
题目背景
USTCPC 设置 2s 时限为了使得 python 通过。洛谷改为 1s 时限。
题目描述
克露丝卡尔酱正在参加 ICPC!这个题目是和 ICPC 基本规则相关的一道题。
以下关于 ICPC 的内容与该题目无关:
1. 一场 ICPC 一般有 $10\sim 15$ 道题。题目排布顺序与题目难度无关。不过为了提升大家的参赛体验,克露丝卡尔酱温馨地提醒大家,ABCD 是本场比赛的简单题哦~
2. 提交代码的正确性会即时返回给选手,选手也可以看到其他选手提交代码的正确性和即时排名。因此,当你在某一道题卡住时,不妨看看排行榜上其他队伍在做什么题,一般来说**通过**选手数较多的题目会更简单哦~
3. 比赛最后一小时内,选手将不再能够看到其他选手提交代码的正确性,称为**封榜**(可以看到自己提交代码的正确性)。在颁奖过程中,会将排名从低到高逐渐公开是否通过,称为**滚榜**。
-------
以下关于 ICPC 的内容与该题目有关:
1. 在 ICPC 中,提交代码的正确性为即时返回给选手,包括:(不同平台上这些名词会略有不同,以实际为准)
+ Accepted(正确)
+ Wrong Answer(答案错误)
+ Time Exceeded(程序运行时间超出时间限制)
+ Runtime Error(程序运行时发生错误,可能原因有:数组越界、除以0等)
+ Memory Exceeded(程序运行内存空间超过了题目限制)
+ Compile Error(编译错误)
如果一位选手在一道题目中获得 Accepted 的结果,则选手在该题获得**通过**。
2. 选手的成绩可以用 $2$ 个参数表示,**通过的题数**和**总罚时**。通过的题数即为选手获得通过题目的数量,而**罚时**的计算参照下表:
- 对于未通过的题目,该题目的罚时为 $0$。
- 对于通过的题目:该题目基础罚时为在该题获得 Accepted 的结果的时间(从比赛开始的分钟数);特别地,在 Accepted 结果前,**每一个**非 Accepted 且非 Compile Error 在该题的提交会对于该题增加 $20$ 分钟罚时。
- 每道题目的基础罚时的范围为 $[0,300)$,即在第 $300$ 分钟开始后不能够再提交代码。(这里认为存在第 $0$ 分钟)
- 一场比赛的总罚时即为所有题目的罚时之和。
定义偏序关系:对于 2 位选手,如果他们通过的题数不相等,则通过的题数更多的选手胜出;若通过的题数相等,则总罚时更小的选手胜出。
特别地,对于该题,规定一位选手只能在一分钟内提交 $30$ 次代码(所有题目共用提交次数)
---
一场一般的 ICPC 可以决出金奖、银奖、铜奖和荣誉奖。按照定义的偏序关系可以获得一个排行榜,而排行榜的前若干名可以获得金奖/银奖/铜奖。每种奖牌存在一种分数线(显然也有 $2$ 个参数):成绩优于或等于该分数线的获得该种奖牌,而成绩劣于该分数线不能获得该种奖牌。分数线必须是一个可能达成的成绩。
显然,能将不同奖牌区分开的分数线并不唯一。因此,克露丝卡尔酱想知道:对于每种奖牌,奖牌线的**上确界**和**下确界**为多少?
输入格式
输入第一行 $4$ 个正整数 $g,s,b,h$ $(g,s,b,h\ge 1,g+s+b+h\le 10^5)$,分别表示金奖、银奖、铜奖和荣誉奖的选手数。
接着,输入 $g+s+b+h$ 行,每行 $2$ 个整数 $x_i$ $(0\le x_i\le 15)$ 和 $y_i$ $(0\le y_i\le 1.6\times 10^5)$ 表示通过的题数和总罚时。保证 $(x_i,y_i)$ 为理论可能存在的通过的题数和对应的总罚时。
前 $g$ 名获得金奖,第 $g+1\sim g+s$ 名获得银奖,第 $g+s+1\sim g+s+b$ 名获得铜奖,剩余选手获得荣誉奖。
数据保证对于 $\forall i$ 有 $(x_i,y_i)$ 和 $(x_{i+1},y_{i+1})$ 满足如题定义的偏序关系。
输出格式
输出 $3$ 行,每行 $4$ 个整数。
第一行输出的是金奖的上确界的通过的题数和罚时,下确界的通过的题数和罚时。第二行和第三行分别为银奖和铜奖的上确界和下确界。
数据保证所有奖牌的**上下确界均存在**。