题目描述
在乡村深处,Farmer John 的奶牛们不仅仅是普通的农场动物——她们是一个奶牛地下情报网络的一部分。每头奶牛都有一个识别码,由奶牛密码专家精心分配。然而,由于 Farmer John 相当随意的标记系统,一些奶牛最终得到了相同的识别码。
Farmer John 注意到有 ()个不同的识别码,对于每一个不同的识别码 (),有 ()头奶牛共用该识别码。
这些奶牛们只能一对一地进行通信,她们的秘密加密方法有一个严格的规则:两头奶牛只有当她们不是同一头奶牛且她们的识别码之和等于 或 时(),她们才能交换信息。每头奶牛同时只能参与一个对话(即,没有奶牛可以属于多对)。
Farmer John 希望最大化独立通信对的数量以确保信息流最佳。你能求出同时可以进行的最大对话数量吗?
输入格式
输入的第一行包含 ,,。
以下 行每行包含 和 。所有 各不相同。
输出格式
输出一行,包含同时可以组成的独立通信对的最大数量。
注意这个问题涉及到的整数可能需要使用 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
提示说明
【样例解释】
将识别码 和 配对可以组成 对,而将识别码 和 配对可以组成 对。可以证明这是最优配对方案,总共组成 对。
-
测试点 5-7:。
-
测试点 8-12:没有额外限制。
【数据规模与约定】
-
测试点 3-4:。
-
测试点 5-7:。
-
测试点 8-12:没有额外限制。
供题:Benjamin Qi