题解 | 小红的口罩
小红的口罩
https://www.nowcoder.com/practice/fde642522d664b49a10fe9de51686026
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define endl '\n'
using vi = vector<int>;
using vl = vector<ll>;
typedef pair<int, int> pii;
using vpii = vector<pii>;
const int MOD=998244353;
//#define int ll
int main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int n,k;cin>>n>>k;
priority_queue<int,vector<int>,greater<int>> a;//定义一个优先队列,让其是最小的在队列头
for (int i=0;i<n;i++){
int x;cin>>x;
a.push(x);
}
int day=0;
int sum=0;
int i=0;
while (1) { //将最小的不舒适度放到sum中,当不舒适度大于k时候,跳出循环
sum+=a.top();
if (sum>k)break;
a.push(a.top()*2);
a.pop();
day++;
}
cout<<day<<endl;
return 0;
}
vivo公司福利 697人发布