2 条题解
-
0
#include<bits/stdc++.h> using namespace std; #define ll long long #define pii pair<ll,ll> #define fi first #define se second vector<ll> v; map<ll,ll> id; bool cmp(pii x,pii y){return x.se<y.se;} signed main(){ ios::sync_with_stdio(0); cin.tie(0),cout.tie(0); ll n,A,B;cin>>n>>A>>B; for(ll i=1,d,x;i<=n;i++){ cin>>x>>d; id[d]=x; v.push_back(d); } sort(v.begin(),v.end()); ll ans=0; for(auto x:v){ ll pa=A-x,pb=B-x; if(id[pb]>0&&pb>=0){//应该优先匹配pb if(pb==x) ans+=id[pb]/2,id[pb]%=2; else{ int mi=min(id[x],id[pb]); ans+=mi; id[x]-=mi,id[pb]-=mi; } } if(id[pa]>0&&pa>=0){ if(pa==x) ans+=id[pa]/2,id[pa]%=2; else { int mi=min(id[x],id[pa]); ans+=mi; id[x]-=mi,id[pa]-=mi; } } } cout<<ans; return 0; } -
0
#include<bits/stdc++.h> using namespace std; #define ll long long #define pii pair<ll,ll> #define fi first #define se second vector<ll> v; map<ll,ll> id; bool cmp(pii x,pii y){return x.se<y.se;} signed main(){ ios::sync_with_stdio(0); cin.tie(0),cout.tie(0); ll n,A,B;cin>>n>>A>>B; for(ll i=1,d,x;i<=n;i++){ cin>>x>>d; id[d]=x; v.push_back(d); } sort(v.begin(),v.end()); ll ans=0; for(auto x:v){ ll pa=A-x,pb=B-x; if(id[pb]>0&&pb>=0){//应该优先匹配pb if(pb==x) ans+=id[pb]/2,id[pb]%=2; else{ int mi=min(id[x],id[pb]); ans+=mi; id[x]-=mi,id[pb]-=mi; } } if(id[pa]>0&&pa>=0){ if(pa==x) ans+=id[pa]/2,id[pa]%=2; else { int mi=min(id[x],id[pa]); ans+=mi; id[x]-=mi,id[pa]-=mi; } } } cout<<ans; return 0; }
- 1
信息
- ID
- 337
- 时间
- 2000ms
- 内存
- 128MiB
- 难度
- 9
- 标签
- 递交数
- 47
- 已通过
- 5
- 上传者