Codeforces Beta Round 66 |
---|
Закончено |
Вася играет в Need For Brake. Играет потому, что ему подарили на день рождения новенький компьютерный руль! Теперь то он уж точно займет первое место в чемпионате в его любимой компьютерной игре в жанре авто-симуляторов!
В чемпионате, состоящем из некоторого количества заездов, принимают участие n гонщиков. По результатам каждого заезда гонщики занимают места с 1 по n-ое (никакие два гонщика не разделяют одно место) и первые m мест являются призовыми. За i-ое призовое место гонщик получает bi очков, которые прибавляются к его очкам, заработанным за все предыдущие заезды. Известно, что к данному моменту гонщик i набрал ai очков. По итогам чемпионата гонщики сортируются в порядке убывания суммы очков. При равном количестве очков сортировка производится по возрастанию имени гонщика в лексикографическом порядке.
К сожалению, чемпионат уже подошел к концу и остался всего лишь один заезд. Вася решил узнать какое самое высокое и самое низкое место он может занять по итогам чемпионата.
В первой строке задано число n — количество гонщиков (1 ≤ n ≤ 105). В каждой из следующих n строк через пробел записаны si и ai — псевдоним, под которым выступает гонщик (непустая строка, состоящая из не более чем 20 маленьких латинских букв), и количество очков этого гонщика (0 ≤ ai ≤ 106). Гонщики заданы в произвольном порядке.
В следующей строке находится число m (0 ≤ m ≤ n). Далее идет m неотрицательных целых чисел bi. i-ое число в этой строке равно числу бонусных очков за i-ое призовое место (0 ≤ bi ≤ 106).
В последней строчке задан псевдоним, под которым выступает Вася.
Вывести два числа — самое высокое и самое низкое места, которые может занять Вася по итогам чемпионата.
3
teama 10
teamb 20
teamc 40
2
10 20
teama
2 3
2
teama 10
teamb 10
2
10 10
teamb
2 2
Название |
---|