2 条题解
-
0
#include <bits/stdc++.h> using namespace std; const int N=2e5+10; int a[N],b[N]; multiset<int>q; int main() { int n,m;cin>>n>>m; for(int i=1;i<=n;i++)cin>>a[i],q.insert(a[i]); for(int i=1;i<=m;i++)cin>>b[i]; sort(b+1,b+m+1); long long ans=0; for(int i=1;i<=m;i++) { auto it=q.lower_bound(b[i]); if(it==q.end())return cout<<-1,0; ans+=*it; q.erase(it); } cout<<ans; return 0; } -
0
#include<bits/stdc++.h> using namespace std; #define int long long const int N=2e5+10; int a[N],b[N]; signed main() { int n,m;scanf("%lld%lld",&n,&m); for(int i=1;i<=n;i++)scanf("%lld",&a[i]); for(int i=1;i<=m;i++)scanf("%lld",&b[i]); sort(a+1,a+n+1); sort(b+1,b+m+1); int ans=0,sum=0; for(int i=1,j=1;i<=n;i++) if(b[j]<=a[i]&&j<=m) { ans+=a[i]; j++;sum++; } if(sum<m)ans=-1; printf("%lld\n",ans); return 0; }
- 1
信息
- ID
- 1622
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 7
- 标签
- 递交数
- 20
- 已通过
- 9
- 上传者