题目:窝窝老师要给小朋友买礼物,商店中一共有n份礼物,第i份礼物的满意值为ai,窝窝老师想要最后买的礼物的满意值的总和达到(大于等于)一个数k, 请问他最少需要买几份礼物?
输入格式:
第一行两个整数n,k
第二行n个整数表示每份礼物的满意值
输出格式:
一行一个数字表示答案,如果可以达到要求请输出最少买的礼物的数量,否则输出-1
#include<stdio.h>
#include<stdbool.h>
int main()
{
int n = 0, k = 0;
scanf("%d %d", &n,&k);
int arr[10001] = { 0 };
int temp = 0;
int sum = 0;
int count = 0;
for(int i = 0;i<n;i++)
{
scanf("%d", &arr[i]);
}
for(int i = 0;i<n-1;i++)
{
for(int j = 0;j<n-i-1;j++)
{
if(arr[j]<arr[j+1])
{
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
bool ok = true;
for(int i = 0;i<n;i++)
{
sum = sum + arr[i];
count++;
if(sum>=k)
{
printf("%d", count);
ok = false;
break;
}
}
if(ok)
printf("-1\n");
return 0;
}