排序 + 分支语句
2023-08-11 17:19:38
发布于:上海
24阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
bool cmp(int a,int b){
return a>b;
}
int main(){
int a[10005]={0};
int n,m,k;
scanf("%d%d%d",&n,&m,&k);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
a[i]=a[i]-1;
}
sort(a,a+n,cmp);
int sum=1,flag=0;
for(int i=0;i<n;i++) flag=flag+a[i];
if(k>=m) {
printf("0");
return 0;
}
else if(flag+k<m){
printf("-1");
return 0;
}
else{
for(int i=0;i<n;i++){
if(k+a[i]>=m) break;
else {
sum++;
k+=a[i];
}
}
}
printf("%d",sum);
return 0;
}
这里空空如也
有帮助,赞一个