CF1070F Debate
题目描述
伯兰德即将举行选举,只有两位候选人——Alice 和 Bob。
伯兰德的主流电视台计划举办一场政治辩论。有 $n$ 个人希望作为观众参与辩论。每个人都有其影响力和政治立场。政治立场分为四种:
- 不支持任何候选人(记作 "00");
- 支持 Alice 但不支持 Bob(记作 "10");
- 支持 Bob 但不支持 Alice(记作 "01");
- 同时支持两位候选人(记作 "11")。
电视台希望从这些人中邀请一些人参加辩论。被邀请的观众集合需要满足以下三个条件:
- 至少有一半的观众支持 Alice(即 $2 \cdot a \ge m$,其中 $a$ 表示支持 Alice 的观众人数,$m$ 表示总观众人数);
- 至少有一半的观众支持 Bob(即 $2 \cdot b \ge m$,其中 $b$ 表示支持 Bob 的观众人数,$m$ 表示总观众人数);
- 观众的总影响力尽可能大。
请帮助电视台选择这样一个非空观众集合,或者判断是否无法满足条件。
输入格式
第一行包含一个整数 $n$($1 \le n \le 4 \times 10^5$),表示希望作为观众参与辩论的人数。
接下来的 $n$ 行,每行描述一个人,包含一个字符串 $s_i$ 和一个整数 $a_i$,用空格分隔($1 \le a_i \le 5000$),其中 $s_i$ 表示该人的政治立场(可能的取值为 "00"、"10"、"01"、"11"),$a_i$ 表示第 $i$ 个人的影响力。
输出格式
输出一个整数,表示满足条件的观众集合的最大总影响力。如果无法满足条件,则输出 $0$。
说明/提示
在第一个样例中,可以邀请 $4$ 位观众以最大化总影响力:第 $1$、$2$、$3$ 和 $6$ 位。他们的政治立场分别为 "11"、"10"、"01" 和 "00"。因此,总共 $4$ 人中有 $2$ 人支持 Alice,有 $2$ 人支持 Bob。总影响力为 $6+4+3+9=22$。
在第二个样例中,可以选择除第 $5$ 个人以外的所有人。
在第三个样例中,可以选择第 $1$、$4$、$5$ 和 $6$ 个人。
在第四个样例中,无法选择任何非空观众集合。
由 ChatGPT 4.1 翻译