10. День рождения Васи

Не решаласьСложная

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

Сегодня у Васи день рождения и он позвал своих друзей отведать nn своих самых лучших блюд. Название каждого из них состоит из строчных букв английского алфавита, цифр и знака подчёркивания.

Для приготовления блюда с номером ii требуется ziz_i ингредиентов. Для каждого ингридиента известно его название, требуемое количество для одной порции блюда, а также единица измерения, в которой это количество задано. Помимо этого, Васе известно, что ii-й кулинарный шедевр захотят попробовать cic_i друзей.

Используются следующие единицы измерения:

  • g, kg — граммы и килограммы, соответственно;
  • l, ml — литры и миллилитры, соответственно;
  • cnt, tens — одна штука и десять штук, соответственно.

В одном килограмме 10001000 грамм и в одном литре 10001000 миллилитров. Делать перевод из одной единицы измерения в другую можно тогда и только тогда, когда они одновременно обозначают или массу, или объём, или количество.

У Васи есть два справочника ингредиентов. В первом для каждого ингредиента указано его количество в упаковке и цена за упаковку. Во втором справочнике для каждого ингредиента указано содержание белков, жиров, углеводов и энергетическая ценность некоторого количества данного ингредиента.

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

Так как друзья именинника очень следят за тем, что едят, то они, перед тем как попробовать Васины блюда, захотят узнать всё про них: как Вася готовил блюда, нет ли в продуктах ГМО, энергетическую ценность каждого блюда и содержание белков, жиров и углеводов в нём. Васе нужно также предоставить эту информацию.

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

Формат ввода

Первая строка содержит целое число nn (1n10001 \leqslant n \leqslant 1000) — количество блюд, которое решил приготовить Вася.

Затем следует описание nn блюд. В первой строке содержатся строка did_i и целые числа cic_i, ziz_i (1ci,zi1001 \leqslant c_i, z_i \leqslant 100) — название блюда, количество друзей, желающих отведать данное блюдо, и количество ингредиентов необходимых для приготовления. Название блюда состоит из строчных букв английского алфавита, цифр и знака подчёркивания. Его длина не превосходит 2020 символов.

В следующих ziz_i строках содеражтся описания ингредиентов. В строке с номером jj содержатся строка si,js_{i, j} — название ингредиента, целое число ai,ja_{i, j} (1ai,j10001 \leqslant \text{a}_{i, j} \leqslant 1000) — требуемое количество ингредиента и строка ui,j\text{u}_{i, j} — название единицы измерения количества. Название ингредиента состоит из строчных букв английского алфавита, цифр и знака подчёркивания. Длина строки не превосходит 2020 символов.

Следующая строка содержит целое число kk (1k10001 \leqslant k \leqslant 1000) — количество ингредиентов в каталоге цен.

В каждой из следующих kk строк, содержатся четыре значения tipiaiuit_i\,p_i\,a_i\,u_i, описывающих ингредиент.

  • tit_i — название ингредиента, состоящее из строчных букв английского алфавита, цифр и знака подчёркивания. Длина строки не превосходит 2020 символов;
  • pip_i — стоимость ингредиента, заданная целым числом (1pi10001 \leqslant p_i \leqslant 1000);
  • aia_i — количество ингредиента в упаковке в единицах, заданное целым числом (1ai10001 \leqslant a_i \leqslant 1000);
  • uiu_i — единица измерения количества (l, ml, g, kg, cnt или tens).

Следующая строка содержит число mm (1m10001 \leqslant m \leqslant 1000) — количество ингредиентов в каталоге еды.

Далее расположены mm строк, в каждой из которой содержится семь значений tiaiuiprifichifvit_i\,a_i\,u_i\,pr_i\,f_i\,ch_i\,fv_i, описывающих ингредиент.

  • tit_i — название ингредиента, состоящее из строчных букв английского алфавита, цифр и знака подчёркивания. Длина строки не превосходит 2020 символов;
  • aia_i — количество ингредиента, для которого указаны характеристики ингредиента, заданное целым числом (1ai10001 \leqslant a_i \leqslant 1000);
  • uiu_i — единица измерения (l, ml, g, kg, cnt или tens);
  • pripr_i, fif_i, chich_i, fvifv_i — содержание белков, жиров, углеводов и энергетическая ценность ингредиента, соответственно, заданные вещественными числами с не более чем шестью знаками после запятой (0pri,fi,chi1000,0fvi100000 \leqslant pr_i, f_i, ch_i \leqslant 1000, 0 \leqslant fv_i \leqslant 10000).

Гарантируется, что:

  • в каталогах перечислены все ингредиенты, необходимые для приготовления блюд;
  • не существует двух блюд с одинаковым названием;
  • не существует двух ингредиентов в одном каталоге с одинаковым названием;
  • не существует двух ингредиентов в одном блюде с одинаковым названием;
  • для любых двух упоминаний ингридиента единицы измерения, в которых заданы его количества, можно перевести друг в друга.

Формат вывода

Первая строка должна содержать одно целое число: количество денег, которое нужно потратить Васе на подготовку к празднику.

Далее должны следовать kk строк, в каждой из которых через пробел указано название ингредиента и целое число — количество упаковок, которое необходимо купить. Ингредиенты, выведенные в этих kk строках должны соответствовать ингредиентам, описанным в первом справочнике.

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

Ингредиенты и блюда разрешается выводить в любом порядке.

Ваш ответ будет считаться правильным, если все целые числа совпадают с соответствующими числами в ответе жюри, а для всех вещественных чисел в ответе их абсолютная или относительная погрешность не превосходит 10310^{-3}. Более формально, пусть вещественное число в вашем ответе равно AA, а соответствующее число в ответе жюри равно BB. Тогда число AA будет считаться корректным, если ABmax(1,B)103\frac{|A-B|}{\max(1,B)} \leq 10^{-3}.

Примечание

В первом примере Васе необходимо приготовить 77 бутербродов и 99 омлетов.

Для приготовления всех первых блюд необходимо 10710 \cdot 7 грамм масла, 272 \cdot 7 кусочков хлеба и 30730 \cdot 7 грамм колбасы. В каждом из бутерброде будет содержаться 0.810100+7.325+1030100=60.8 \cdot \frac{10}{100} + 7.3 \cdot \frac{2}{5} + 10 \cdot \frac{30}{100} = 6 грамм белков, 72.510100+1.625+1830100=13.2972.5 \cdot \frac{10}{100} + 1.6 \cdot \frac{2}{5} + 18 \cdot \frac{30}{100} = 13.29 грамм жиров и 1.310100+52.325+1.530100=21.51.3 \cdot \frac{10}{100} + 52.3 \cdot \frac{2}{5} + 1.5 \cdot \frac{30}{100} = 21.5 грамм углеводов. Энергетическая ценность составит 66110100+24825+21030100=228.3661 \cdot \frac{10}{100} + 248 \cdot \frac{2}{5} + 210 \cdot \frac{30}{100} = 228.3 ккал.

Для приготовления всех вторых блюд необходимо 49=364 \cdot 9 = 36 яиц, 1209=1080120 \cdot 9 = 1080 миллилитров молока, 99 грамм соли, 509=45050 \cdot 9 = 450 грамм колбасы. В каждом омлете будет содержаться 134+31201000+1050100=57.3613 \cdot 4 + 3 \cdot \frac{120}{1000} + 10 \cdot \frac{50}{100} = 57.36 грамм белков, 124+4.51201000+1850100=57.5412 \cdot 4 + 4.5 \cdot \frac{120}{1000} + 18 \cdot \frac{50}{100} = 57.54 жиров и 14+4.71201000+1.550100=5.3141 \cdot 4 + 4.7 \cdot \frac{120}{1000} + 1.5 \cdot \frac{50}{100} = 5.314 углеводов. Энергетическая ценность составит 16.44+601201000+21050100=177.816.4 \cdot 4 + 60 \cdot \frac{120}{1000} + 210 \cdot \frac{50}{100} = 177.8 ккал.

Всего необходимо 7070 грамм масла, 3636 яиц, 10801080 миллилитров молока, 99 грамм соли, 210+450=660210 + 450 = 660 грамм колбасы и 1414 кусочков тостового хлеба.

Таким образом, в магазине нужно купить одну упаковку масла, 44 десятка яиц, 22 упаковки колбасы и молока, по одной упаковке соли и тостового хлеба, заплатив 120+614+1002+582+14+40=734120 + 61 \cdot 4 + 100 \cdot 2 + 58 \cdot 2 + 14 + 40 = 734 рубля.

Ограничения

Ограничение времени

3 с

Ограничение памяти

256 МБ

Пример 1

Ввод
2
sandwich 7 3
butter 10 g
toasted_bread 2 cnt
sausage 30 g
omelet 9 4
egg 4 cnt
milk 120 ml
salt 1 g
sausage 50 g
7
egg 61 1 tens
milk 58 1 l
sausage 100 480 g
butter 120 180 g
cream 100 350 g
salt 14 1000 g
toasted_bread 40 20 cnt
8
egg 1 cnt 13 12 1 16.4
milk 1 l 3 4.5 4.7 60
chocolate 90 g 6.8 36.3 47.1 546
salt 1 kg 0 0 0 0
strawberry 100 g 0.4 0.1 7 35
sausage 100 g 10 18 1.5 210
toasted_bread 5 cnt 7.3 1.6 52.3 248
butter 100 g 0.8 72.5 1.3 661
Вывод
734
egg 4
milk 2
sausage 2
butter 1
cream 0
salt 1
toasted_bread 1
sandwich 6.00 13.29 21.50 228.3
omelet 57.360 57.540 5.314 177.800

Теги

Нужно войти, чтобы отправить решение.Войти