记录编号 605692 评测结果 AAAAAAAAAAAA
题目名称 4171.[USACO25 Open Silver]Compatible Pairs 最终得分 100
用户昵称 GravatarRuyi 是否通过 通过
代码语言 C++ 运行时间 3.023 s
提交时间 2025-09-06 15:42:26 内存使用 13.52 MiB
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
#define N 200001
using namespace std;
ll n,a,b,d[N],ni,ans;
map<ll,ll> m;
vector<int> v;
int main(){
    freopen("Compatible.in","r",stdin);
    freopen("Compatible.out","w",stdout);
    cin>>n>>a>>b;
    for(int i=1;i<=n;i++){
        cin>>ni>>d[i];
        m[d[i]]=ni;
    }
    sort(d+1,d+n+1);
    for(int i=1;i<=n;i++){
        ll aa=a-d[i],bb=b-d[i];
        if(m[bb]>0&&bb>=0){
			if(bb==d[i]){
			    ans+=m[bb]/2;
                m[bb]%=2;
            }else{
				ll minn=min(m[d[i]],m[bb]);
				ans+=minn;
				m[d[i]]-=minn;
				m[bb]-=minn;
			}
		}
		if(m[aa]>0&&aa>=0){
			if(aa==d[i]){
			   ans+=m[aa]/2;
               m[aa]%=2; 
            }else{
				ll minn=min(m[d[i]],m[aa]);
				ans+=minn;
				m[d[i]]-=minn;
				m[aa]-=minn;
			}
		}
    }
    cout<<ans<<endl;
    return 0;
}