记录编号 605681 评测结果 AAAAAAAAAAAA
题目名称 4171.[USACO25 Open Silver]Compatible Pairs 最终得分 100
用户昵称 Gravatar梧叶已同秋雨去 是否通过 通过
代码语言 C++ 运行时间 3.069 s
提交时间 2025-09-06 15:11:43 内存使用 14.41 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n,a,b,ans,ansa,ansb;
struct node{
	long long d,n; 
}t[2000005]; 
map<long long,long long>mp;
bool cmp(node x,node y){
	return x.d<y.d;
}
int main(){
//	freopen("Compatible.in","r",stdin);
//	freopen("Compatible.out","w",stdout);
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++){
		cin>>t[i].n>>t[i].d;
		mp[t[i].d]=t[i].n;
	}sort(t+1,t+n+1,cmp);
	for(int i=1;i<=n;i++){
		long long nda=a-t[i].d;
		long long ndb=b-t[i].d;
		ansa=0;ansb=0;
		if(ndb>=0&&mp[ndb]>0){
			if(ndb==t[i].d){
				ans+=mp[t[i].d]/2;
				mp[t[i].d]%=2;
			}else{
				ansb=min(mp[ndb],mp[t[i].d]);
				ans+=ansb;
				mp[ndb]-=ansb;
				mp[t[i].d]-=ansb;
			}
		}
		if(nda>=0&&mp[nda]>0){
			if(nda==t[i].d){
				ans+=mp[t[i].d]/2;
				mp[t[i].d]%=2; 
			}else{
				ansa=min(mp[nda],mp[t[i].d]);
				ans+=ansa;
				mp[nda]-=ansa;
				mp[t[i].d]-=ansa;
			}

		}
	}
	cout<<ans;
	return 0;
}