#P16964. [SGU400]The last hour of the contest

[SGU400]The last hour of the contest

题目描述

你参加了一场持续 300 分钟的 ICPC 风格比赛。按照比赛规则,榜单在第 241~300 分钟冻结,因此比赛结束后参赛者只能看到第 240 分钟时的榜单。

不过,每当某支队伍通过一道题时都会得到一个气球。因此,你还知道最后一小时内所有队伍一共获得了多少个气球。

现在给出:

  1. 第 240 分钟结束时的冻结榜单;
  2. 第 241~300 分钟一共发出的气球数量;
  3. 你的队名。

请计算比赛结束后你的队伍可能取得的 最好名次最坏名次

比赛规则如下:

  • 比赛时间为 300 分钟;
  • 解题数更多的队伍排名更高;
  • 解题数相同时,总罚时更小的队伍排名更高;
  • 解题数和罚时都相同的队伍并列;
  • 一支队伍的名次等于“严格优于它的队伍数 + 1”;
  • 一道通过题目的罚时为通过时刻的分钟数,加上该题此前每次错误提交的 20 分钟罚时;
  • 未通过的题目不计罚时;
  • 一道题通过以后不能再提交该题。

冻结榜单的第一行形如:

Rank Team = Penalty A B C ...

其中最后若干个大写字母是题目标识,互不相同。

之后每行描述一支队伍,依次给出:

  • 当前名次;
  • 队名;
  • 已通过题数;
  • 当前总罚时;
  • 每道题的状态。

题目状态为:

  • .:从未提交;
  • -x:尚未通过,并且已经有 xx 次错误提交;
  • +:已经通过,且通过前没有错误提交;
  • +x:已经通过,且通过前有 xx 次错误提交。

队名可以包含大小写英文字母、数字和空格,长度不超过 100,不以空格开头或结尾;同一组数据中的队名互不相同。

最后一小时内每出现一次 AC,就会发出一个气球。已知的气球总数是精确值。最后一小时中的错误提交次数没有上限。

输入中包含一组或多组数据,直到文件结束。

输入格式

每组数据先给出完整冻结榜单。

榜单结束后的下一行是一个非负整数,表示最后一小时内发出的气球总数。

再下一行是你的队名。

随后可能直接开始下一组数据。

限制:

  • 队伍数 11001\sim100
  • 题目数 1261\sim26
  • 冻结榜单中所有错误提交次数之和不超过 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