#P16964. [SGU400]The last hour of the contest
[SGU400]The last hour of the contest
题目描述
你参加了一场持续 300 分钟的 ICPC 风格比赛。按照比赛规则,榜单在第 241~300 分钟冻结,因此比赛结束后参赛者只能看到第 240 分钟时的榜单。
不过,每当某支队伍通过一道题时都会得到一个气球。因此,你还知道最后一小时内所有队伍一共获得了多少个气球。
现在给出:
- 第 240 分钟结束时的冻结榜单;
- 第 241~300 分钟一共发出的气球数量;
- 你的队名。
请计算比赛结束后你的队伍可能取得的 最好名次 和 最坏名次。
比赛规则如下:
- 比赛时间为 300 分钟;
- 解题数更多的队伍排名更高;
- 解题数相同时,总罚时更小的队伍排名更高;
- 解题数和罚时都相同的队伍并列;
- 一支队伍的名次等于“严格优于它的队伍数 + 1”;
- 一道通过题目的罚时为通过时刻的分钟数,加上该题此前每次错误提交的 20 分钟罚时;
- 未通过的题目不计罚时;
- 一道题通过以后不能再提交该题。
冻结榜单的第一行形如:
Rank Team = Penalty A B C ...
其中最后若干个大写字母是题目标识,互不相同。
之后每行描述一支队伍,依次给出:
- 当前名次;
- 队名;
- 已通过题数;
- 当前总罚时;
- 每道题的状态。
题目状态为:
.:从未提交;-x:尚未通过,并且已经有 次错误提交;+:已经通过,且通过前没有错误提交;+x:已经通过,且通过前有 次错误提交。
队名可以包含大小写英文字母、数字和空格,长度不超过 100,不以空格开头或结尾;同一组数据中的队名互不相同。
最后一小时内每出现一次 AC,就会发出一个气球。已知的气球总数是精确值。最后一小时中的错误提交次数没有上限。
输入中包含一组或多组数据,直到文件结束。
输入格式
每组数据先给出完整冻结榜单。
榜单结束后的下一行是一个非负整数,表示最后一小时内发出的气球总数。
再下一行是你的队名。
随后可能直接开始下一组数据。
限制:
- 队伍数 ;
- 题目数 ;
- 冻结榜单中所有错误提交次数之和不超过 1000;
- 最终榜单中的错误提交次数不设上限;
- 整个输入文件大小不超过 100 KB。
输出格式
对于每组数据输出一行两个整数:
best worst
其中 best 是你的队伍最终可能取得的最好名次,worst 是可能取得的最坏名次。
样例
Rank Team = Penalty X Y
1 Tarasov SU 3 2 33 + +
2 IMHO 1 1 20 + -1
3 Mozgow SU x 33 1 30 . +
3 MiTV 1 30 + -3
5 Opel SU 0 0 . .
2
MiTV
Rank Team = Penalty A
1 aa 0 0 -1
1 ba 0 0 -8
2
ba
2 4
1 2