CF77A Heroes

题目描述

2012 年即将到来…… 根据古代 choradrican 的传说,正是在这个年份,Diablo 及其兄弟 Mephisto 和 Baal 将从地狱逃出,无数恶魔大军将奴役人类世界。但七位勇敢的英雄已经聚集在 Arreat 山顶,准备保护我们这些凡人免受可怕邪恶的影响。 这七位伟大的英雄分别是:amazon Anka、barbarian Chapay、sorceress Cleo、druid Troll、necromancer Dracul、paladin Snowy 以及职业女杀手 Hexadecimal。英雄们已经知道击败每个超级头目能获得多少经验值:击败 Mephisto 获得 $a$ 经验,Diablo 获得 $b$ 经验,Baal 获得 $c$ 经验。 问题来了:英雄有七位,超级头目只有三位!于是英雄们决定分成三支队伍,每个队伍分别去消灭一个超级头目。每个队员将获得 $\left\lfloor \frac{x}{y} \right\rfloor$ 的经验值,这里 $x$ 表示击败的超级头目的经验值,$y$ 表示该队伍的人数。 英雄们不想让伙伴伤心,因此希望分组方式能让获得经验最多和最少的英雄之间的经验差尽可能小。由于分组方式可能不止一种,你还需要在经验差已最小化的前提下,使得最终队伍中的喜欢关系总数最大。 已知部分英雄喜欢其他英雄。如果英雄 $p$ 喜欢英雄 $q$,并不意味着英雄 $q$ 也喜欢英雄 $p$。没有英雄会喜欢自己。 队伍中的总喜欢度定义为在同一队伍中的有序对 $(p, q)$ 的数量,其中英雄 $p$ 喜欢英雄 $q$(不关心 $q$ 是否喜欢 $p$)。如果 $p$ 和 $q$ 互相喜欢且同队,这组会被计为两次,分别是 $(p, q)$ 和 $(q, p)$。 每支队伍可以由一名英雄组成,但必须确保每个超级头目都被消灭。所有英雄都必须参加对抗邪恶的战役,每位英雄只能加入一支队伍。 保证每位英雄可以单独消灭任意超级头目。

输入格式

第一行为一个非负整数 $n$($0 \le n \le 42$),表示喜欢关系的数量。接下来的 $n$ 行,每行描述一个喜欢关系,格式为“p likes q”,表示英雄 $p$ 喜欢英雄 $q$($p \ne q$)。每种喜欢关系在输入中恰好出现一次,且没有英雄喜欢自己。 最后一行为三个正整数 $a$、$b$ 和 $c$($1 \leq a, b, c \leq 2 \times 10^{9}$),以空格分隔,分别为击败 Mephisto、Diablo 和 Baal 后获得的经验值。 在所有预测试(除了题面样例)中,均有 $a = b = c$。

输出格式

输出两个整数——最小化后的最大和最小经验值之差,以及在此前提下队伍喜欢关系的最大总数。

说明/提示

关于第一个样例的说明:最优分组方式为第一队为 Dracul、Troll 和 Anka,第二队为 Hexadecimal 和 Snowy,第三队为 Cleo 和 Chapay。 由 ChatGPT 5 翻译