e-olymp
favorite Нам необходимо немного Вашей помощи чтобы сайт продолжал работать, нажмите на банер чтобы узнать больше.
Соревнования

2015 German Collegiate Programming Contest (GCPC)

Сувениры

Вы находитесь в отпуске в стране, где используются только два типа монет: серебряные и золотые. Относительная стоимость одной золотой монеты по сравнению с количеством серебряных монет должна быть большой, потому что существуют только эти два типа монет. Хотя это довольно неудобно для торговцев, они не хотят иметь дело с третьим типом монет.

Их идея заключается в том, что стоимость серебряных монет изменяется таким образом, что золотая монета стоит меньше серебряных монет. Чтобы заявить о себе, они связывают серебряные монеты в пакеты и дают сдачу только золотыми и упакованными серебряными монетами, но не отдельными серебряными монетами. Однако они не меняют свои цены, кратные стоимости серебряной упаковки.

Таким образом, торговцы должны округлить сдачу. Разные продавцы используют разные методы округления. Честные торговцы округляют до ближайшего значения и в большую сторону в случае равенства. Жадные торговцы всегда округляют вниз. Щедрые торговцы всегда округляют вверх. Продавцы также не договаривались об одном размере упаковки, поэтому все они могут быть разными. Но они всегда являются неотъемлемым фактором текущей стоимости золотой монеты в серебряных монетах.

У Вас осталось немного золотых монет, и Вы хотите купить как можно больше сувениров. Вы уже знаете разные цены у всех торговцев на рынке (цена ниже, чем стоит одна золотая монета) и какой торговец является жадным, щедрым и честным, а также размеры их упаковок серебряных монет. У Вас есть время только один раз пройтись по рынку, поэтому нужно посетить торговцев в указанном порядке. Кроме того, Вы не хотите использовать щедрых торговцев. Таким образом, если Вы можете заплатить точную цену, то сделаете это; в противном случае заплатите ровно одной золотой монетой. Вы платите другим торговцам либо точную цену, либо одну золотую монету. Вы покупаете не более одного сувенира у каждого продавца. Затем Вы распаковываете сдачу, то есть пакеты с серебряными монетами, так что Вы можете использовать монеты отдельно.

Например, в третьем тесте Вы пропускаете первого продавца и покупаете у второго за золотую монету. Поскольку Ввы не можете точно заплатить третьему продавцу, то снова используете золотую монету. При обмене двух покупок (шесть и восемь серебряных монет) Вы можете оплатить сувениры у оставшихся трех торговцев.

Входные данные

Первая строка содержит три целых числа g, c и n, где g обозначает стоимость одной золотой монеты в серебряных монетах, c обозначает количество имеющихся у вас золотых монет и n - количество продавцов на рынке (1 < g100, 1c, n100).

Каждая из следующих n строк описывает одного продавца. Каждая из этих строк начинается со строки “greedy”, “honest” или “generous”, описывающей привычку продавца к округлению. За строкой следуют два целых числа pi и si, где pi обозначает размер упаковки серебряных монет, которые использует торговец, а si указывает цену сувенира у этого торговца в серебряных монетах (1pig, 1si < g).

Выходные данные

Одна строка, содержащая максимальное количество сувениров, которое Вы можете купить.

Лимит времени 2 секунды
Лимит использования памяти 512 MiB
Входные данные #1
42 1 2
generous 21 41
honest 6 21
Выходные данные #1
2
Входные данные #2
42 1 2
honest 21 11
generous 6 23
Выходные данные #2
1
Входные данные #3
12 2 6
greedy 1 5
greedy 1 6
generous 4 7
greedy 4 6
greedy 6 6
honest 2 2
Выходные данные #3
5
Источник 2015 German Collegiate Programming Contest (GCPC), June 20, Problem J