#P12026. [USACO25OPEN] Compatible Pairs S

    ID: 11980 远端评测题 2000ms 256MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>图论贪心USACO2025图论建模拓扑排序

[USACO25OPEN] Compatible Pairs S

Description

在乡村深处,Farmer John 的奶牛们不仅仅是普通的农场动物——她们是一个奶牛地下情报网络的一部分。每头奶牛都有一个识别码,由奶牛密码专家精心分配。然而,由于 Farmer John 相当随意的标记系统,一些奶牛最终得到了相同的识别码。

Farmer John 注意到有 NN1N21051\leq N\leq 2\cdot10^5)个不同的识别码,对于每一个不同的识别码 did_i0di1090\leq d_i\leq 10^9),有 nin_i1ni1091\leq n_i\leq 10^9)头奶牛共用该识别码。

这些奶牛们只能一对一地进行通信,她们的秘密加密方法有一个严格的规则:两头奶牛只有当她们不是同一头奶牛且她们的识别码之和等于 AABB 时(0AB21090\leq A\leq B\leq 2\cdot10^9),她们才能交换信息。每头奶牛同时只能参与一个对话(即,没有奶牛可以属于多对)。

Input Format

输入的第一行包含 NNAABB

接下来 NN 行每行包含 nin_idid_i。所有 did_i 均不相同。

Output Format

输出一行,包含同时可以组成的独立通信对的最大数量。

注意这个问题涉及到的整数可能需要使用 64 位整数类型(例如,C/C++ 中的 "long long")。

4 4 5
17 2
100 0
10 1
200 4
118
4 4 5
100 0
10 1
100 3
20 4
30

Hint

样例一解释

一头识别码为 00 的奶牛可以与另一头识别码为 44 的奶牛通信,因为她们的识别码之和为 44。由于总共有 100100 头识别码为 00 的奶牛和 200200 头识别码为 44 的奶牛,因此可以组成至多 100100 对此识别码组合的通信对。

一头识别码为 44 的奶牛也可以与另一头识别码为 11 的奶牛通信(和为 55)。有 1010 头识别码为 11 的奶牛和 100100 头余下未配对的识别码为 44 的奶牛,组成另外 1010 对。

最后,一头识别码为 22 的奶牛可以与另一头相同识别码的奶牛通信。由于总共有 1717 头识别码为 22 的奶牛,因此可以另外组成至多 88 对。

总共组成 100+10+8=118100+10+8=118 对通信对。可以证明这是最大可能的对数。

样例二解释

将识别码 0044 配对可以组成 2020 对,而将识别码 1133 配对可以组成 1010 对。可以证明这是最优配对方案,总共组成 3030 对。

测试点性质

  • 测试点 343\sim4A=BA=B
  • 测试点 575\sim7N1000N\le 1000
  • 测试点 8128\sim12:无额外限制。