比赛 2025.9.6 评测结果 AAAAAAAAAAAA
题目名称 Compatible Pairs 最终得分 100
用户昵称 OTTF 运行时间 2.591 s
代码语言 C++ 内存使用 13.29 MiB
提交时间 2025-09-06 09:33:27
显示代码纯文本

#include <algorithm>
#include <cstdio>
#include <iostream>
#include <map>
#include <vector>

using namespace std;

int n;
long long cal[2];
map<long long, long long> nums;
vector<long long> vec;
long long res;

int main () {
	
	freopen ("Compatible.in", "r", stdin);
	freopen ("Compatible.out", "w", stdout);

	cin >> n >> cal[1] >> cal[0];
	long long ni, di;
	for (int i = 1; i <= n; i++) {
		cin >> ni >> di;
		nums[di] = ni;
		vec.push_back(di);
	}

	sort (vec.begin(), vec.end());

	for (auto d : vec) {
		for (int i = 0; i <= 1; i++) {
			if (!nums[d] || !nums[cal[i] - d]) {
				continue;
			}
			if (d == cal[i] - d) {
				res += nums[d] / 2;
				nums[d] %= 2;
			}
			else {
				long long minn = min (nums[d], nums[cal[i] - d]);
				res += minn;
				nums[d] -= minn;
				nums[cal[i] - d] -= minn;
			}
		}
	}

	cout << res << endl;
	
	return 0;
}