CF73B Need For Brake

题目描述

Vasya 正在玩《Need For Brake》。他玩这个游戏是因为生日收到了一个新的方向盘!现在他确信自己能在最喜欢的赛车游戏锦标赛中获得第一名! 这场锦标赛共有 $n$ 位赛车手参与,比赛由若干场比赛组成。每场比赛后,赛车手按照名次从第一名排到第 $n$ 名(没有并列名次),前 $m$ 名有奖励。获得奖励名次的第 $i$ 名赛车手可以获得 $b_{i}$ 分,该分数会累计到他之前所得的总分中。已知每位赛车手当前的总分为 $a_{i}$。最终总排名将按照分数从高到低排序。如果分数相同,则按昵称的字典序(升序)排序。 现在,锦标赛只剩下最后一场比赛了。Vasya 想知道,在最终结果中,他最高可能获得的名次以及最低可能获得的名次分别是多少。

输入格式

第一行包含一个整数 $n$($1 \leq n \leq 10^{5}$)——赛车手数量。接下来的 $n$ 行,每行包含赛车手的昵称 $s_{i}$(非空字符串,由不超过 $20$ 个小写拉丁字母组成)和该赛车手的积分 $a_{i}$($0 \leq a_{i} \leq 10^6$)。赛车手以任意顺序给出。 下一行包含一个整数 $m$($0 \leq m \leq n$)。接下来一行包含 $m$ 个非负整数 $b_{i}$,第 $i$ 个数对应第 $i$ 个获奖名次的分数($0 \leq b_{i} \leq 10^6$)。 最后一行为 Vasya 的赛车手昵称。

输出格式

输出两个整数,分别表示 Vasya 最终可能获得的最高名次和最低名次。

说明/提示

由 ChatGPT 5 翻译