题解 | 小红的口罩

小红的口罩

https://www.nowcoder.com/practice/fde642522d664b49a10fe9de51686026

#include<bits/stdc++.h>
using namespace std;


int main(){

    int n;
    long long k;
    cin>>n>>k;
    long long sum=0;//不适度总和
    priority_queue<long long, vector<long long>, greater<long long>> heap;
    int a[100000];
    for(int i=0;i<n;i++){
        long long a;
        cin>>a;
        heap.push(a);//入堆
    }

    int day=0;
    while(!heap.empty()){
        long long current_min = heap.top();
        heap.pop();//取出最小值
        if(sum + current_min > k ){//没有口罩可用了
            break;
        }

        sum+=current_min;
        day++;
        heap.push(current_min*2);//翻倍后再入堆
    }

    cout<<day<<endl;

}

全部评论

相关推荐

02-26 13:56
已编辑
重庆财经学院 Java
King987:你有实习经历,但是写的也太简单了,这肯定是不行的,你主要要包装实习经历这一块,看我的作品,你自己包装一下吧,或者发我,我给你出一期作品
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务