P12026 [USACO25OPEN] Compatible Pairs S
题目描述
在乡村深处,Farmer John 的奶牛们不仅仅是普通的农场动物——她们是一个奶牛地下情报网络的一部分。每头奶牛都有一个识别码,由奶牛密码专家精心分配。然而,由于 Farmer John 相当随意的标记系统,一些奶牛最终得到了相同的识别码。
Farmer John 注意到有 $N$($1\leq N\leq 2\cdot10^5$)个不同的识别码,对于每一个不同的识别码 $d_i$($0\leq d_i\leq 10^9$),有 $n_i$($1\leq n_i\leq 10^9$)头奶牛共用该识别码。
这些奶牛们只能一对一地进行通信,她们的秘密加密方法有一个严格的规则:两头奶牛只有当她们不是同一头奶牛且她们的识别码之和等于 $A$ 或 $B$ 时($0\leq A\leq B\leq 2\cdot10^9$),她们才能交换信息。每头奶牛同时只能参与一个对话(即,没有奶牛可以属于多对)。
输入格式
输入的第一行包含 $N$,$A$,$B$。
接下来 $N$ 行每行包含 $n_i$ 和 $d_i$。所有 $d_i$ 均不相同。
输出格式
输出一行,包含同时可以组成的独立通信对的最大数量。
**注意这个问题涉及到的整数可能需要使用 64 位整数类型(例如,C/C++ 中的 "long long")。**
说明/提示
#### 样例一解释
一头识别码为 $0$ 的奶牛可以与另一头识别码为 $4$ 的奶牛通信,因为她们的识别码之和为 $4$。由于总共有 $100$ 头识别码为 $0$ 的奶牛和 $200$ 头识别码为 $4$ 的奶牛,因此可以组成至多 $100$ 对此识别码组合的通信对。
一头识别码为 $4$ 的奶牛也可以与另一头识别码为 $1$ 的奶牛通信(和为 $5$)。有 $10$ 头识别码为 $1$ 的奶牛和 $100$ 头余下未配对的识别码为 $4$ 的奶牛,组成另外 $10$ 对。
最后,一头识别码为 $2$ 的奶牛可以与另一头相同识别码的奶牛通信。由于总共有 $17$ 头识别码为 $2$ 的奶牛,因此可以另外组成至多 $8$ 对。
总共组成 $100+10+8=118$ 对通信对。可以证明这是最大可能的对数。
#### 样例二解释
将识别码 $0$ 和 $4$ 配对可以组成 $20$ 对,而将识别码 $1$ 和 $3$ 配对可以组成 $10$ 对。可以证明这是最优配对方案,总共组成 $30$ 对。
#### 测试点性质
- 测试点 $3\sim4$:$A=B$。
- 测试点 $5\sim7$:$N\le 1000$。
- 测试点 $8\sim12$:无额外限制。