标题小红的口罩

其实这个题呢可以把每个口罩的极限使用的不舒适度全存进数组里面,之后用sort排个序就可以从小到大选择最优方案来使用口罩了。

#include<cstdio>
#include<algorithm>
using namespace std;
int num[10000005];
int arr[10000005];
int cnt,ans;
int main(void)
{
	int n,k;
	cin>>n>>k;
	for(int i=0;i<n;i++) scanf("%d",&num[i]);
	sort(num,num+n);
	
	for(int i=0;i<n;i++)
	{
		while(num[i]<=k)
		{
			arr[cnt]=num[i];
			num[i]*=2;
			cnt++;
		}
	 } 
	sort(arr,arr+cnt);
	
	int sum=0;
	for(int i=0;i<cnt;i++)
	{
		if(sum<=k)
		{
			sum+=arr[i];
			ans++;
		}
		
	}
	if(ans==0) cout<<0<<endl;
	else cout<<ans-1<<endl;
	return 0;
}