Codeforces Beta Round 69 (Div. 1 Only) |
---|
Закончено |
Грядёт 2012-ый год...
Согласно древней хорадрической легенде, именно в этом, 2012-м году, Диабло со своими братьями Мефисто и Баалом вырвется из ада, и неисчислимые орды демонов поработят человеческий мир. Но семеро отважных героев уже собрались на вершине горы Арреат, чтобы защитить нас, простых смертных, от влияния этого ужасного зла.
Семеро великих, вот они: амазонка Anka, варвар Chapay, волшебница Cleo, друид Troll, некромант Dracul, паладин Snowy и профессиональная девушка-киллер Hexadecimal. Герои уже знают, сколько опыта дадут за каждого из трёх мегабоссов: a — за Мефисто, b — за Диабло и c — за Баала.
Вот беда: героев аж целых семь, а мегабоссов всего трое! Тогда наши герои решили разделиться на три группы, где каждая группа пойдёт уничтожать своего мегабосса. Каждый член группы получит опыта, округлённое вниз, где x — количество опыта за убитого мегабосса, а y — количество людей в группе.
Герои не хотят обижать друг друга, поэтому хотят разделиться на группы так, чтобы разница между персонажем, получившим максимальное число опыта и персонажем, получившим минимальное число опыта, была минимальна. Поскольку разделений на группы может быть несколько, то нужно найти такое, при котором суммарное количество симпатий в группах максимально.
Известно, что одни герои вызывают симпатию у других. Но если персонажу p нравится персонаж q, то это вовсе не значит, что персонажу q нравится персонаж p. Никакой герой не нравится сам себе.
Суммарное количество симпатий в группах — это количество таких упорядоченных пар (p, q), что герои p и q состоят в одной группе, и при этом герою p нравится герой q (но неважно, нравится ли герою q герой p). В случае, если герои p и q нравятся друг другу и состоят в одной группе, эта пара должна быть учтена дважды, как (p, q) и как (q, p).
Группа может состоять даже из одного персонажа, но важно, чтобы каждый мегабосс был уничтожен. Все герои должны быть задействованы в походе против зла. Ни один герой не может находиться более, чем в одной группе.
Гарантируется, что каждый герой в состоянии уничтожить любого мегабосса в одиночку.
В первой строке дано единственное неотрицательное целое число n (0 ≤ n ≤ 42) — количество симпатий между героями. В последующих n строках дано описание симпатий в формате «p likes q», означающих, что герою p нравится герой q (p ≠ q). Каждая симпатия описана во входных данных ровно один раз, никакому герою не нравится он сам.
В последней строке даны три целых числа a, b и c (1 ≤ a, b, c ≤ 2·109), разделённые пробелом: опыт за Мефисто, опыт за Диабло и опыт за Баала.
Во всех претестах, за исключением примеров из условия, выполняется: a = b = c.
Выведите два целых числа — минимальную разницу в опыте между персонажами, которые получат максимальное и минимальное количество очков опыта, и максимальное суммарное количество симпатий в группах (количество дружб между персонажами, оказавшимися в одной группе).
В этой задаче в первую очередь надо минимизировать разницу опыта, и среди всех таких разделений на группы выбрать такое, что суммарное количество симпатий максимально.
3
Troll likes Dracul
Dracul likes Anka
Snowy likes Hexadecimal
210 200 180
30 3
2
Anka likes Chapay
Chapay likes Anka
10000 50 50
1950 2
Пояснение к первому примеру: первую группу могут сформировать Dracul, Troll и Anka, вторую группу — Hexadecimal и Snowy, а третью — Cleo и Chapay.
Название |
---|