A105172.糖果店的购物挑战
2026-08-31 18:05:25
发布于:辽宁
8阅读
0回复
0点赞
怎么又没有人发题解啊
我来发题解了
这道题我的思路是将糖果和需求进行排序
遍历糖果来匹配需求是否满足
最后如果需求全部满足,输出其值
否则输出-1
时间复杂度O(n long n),主要是排序
能过
给出代码
#include <bits/stdc++.h>
using namespace std;
const int MAXN=200005;
int n, m;
int a[MAXN];
int b[MAXN];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m;
for(int i=1; i<=n; i++) cin >> a[i];
for(int i=1; i<=m; i++) cin >> b[i];
sort(a+1, a+1+n);
sort(b+1, b+1+m);
int j=1;
long long sum=0;
for(int i=1; i<=n; i++){
if(j==m+1) break;
if(b[j]<=a[i]){
j++;
sum+=a[i];
}
}
if(j==m+1)
cout << sum;
else
cout << -1;
return 0;
}
这里空空如也








有帮助,赞一个