记录编号 605712 评测结果 AAAAAAAAAAAA
题目名称 4171.[USACO25 Open Silver]Compatible Pairs 最终得分 100
用户昵称 GravatarChenBp 是否通过 通过
代码语言 C++ 运行时间 2.747 s
提交时间 2025-09-06 16:38:36 内存使用 9.23 MiB
显示代码纯文本
#include <algorithm>
#include <iostream>
#include <map>
#include <vector>
using namespace std;
const int N = 2e5 + 5;
map<int, int> ma;
vector<int> d;
int main() {
    long long n, a, b;
    cin >> n >> a >> b;
    for (int i = 1; i <= n; i++) {
        int ni, di;
        cin >> ni >> di;
        ma[di] = ni;
        d.push_back(di);
    }
    sort(d.begin(), d.end());
    long long ans = 0;
    for (auto i : d) {
        if (ma[i]) {
            int o = b - i;
            if (ma.count(o) && ma[o]) {
                if (o == i) {
                    ans += ma[i] / 2;
                    ma[i] %= 2;
                } else {
                    int t = min(ma[i], ma[o]);
                    ans += t;
                    ma[i] -= t;
                    ma[o] -= t;
                }
            }
            o = a - i;
            if (ma.count(o) && ma[o]) {
                if (o == i) {
                    ans += ma[i] / 2;
                    ma[i] %= 2;
                } else {
                    int t = min(ma[i], ma[o]);
                    ans += t;
                    ma[i] -= t;
                    ma[o] -= t;
                }
            }
        }
    }
    cout << ans;
    return 0;
}