题在这里: 舞蹈演出 - 题目详情 - 信友队 (xinyoudui.com)
救救我吧不会改了
#include<bits/stdc++.h>
using namespace std;
long long t,n,k,a[200005];
long long l;
long long r;
bool check(long long k){
priority_queue<long long> pq;
for(int i=0;i<k;i++){
pq.push(a[i]);
}
long long mx=0;
for(int i=k;i<n;i++){
long long tmp=pq.top();
pq.pop();
pq.push(a[i]+tmp);
mx=max(mx,a[i]+tmp);
}
return mx<=t;
}
int main(){
l=1;
scanf("%lld%lld",&n,&t);
r=n;
for(int i=1;i<=n;i++){
scanf("%lld",a+i);
}
while(l<r){
long long mid=(l+r)/2;
if(check(mid)){
r=mid;
}else{
l=mid+1;
}
}
printf("%lld\n",r);
return 0;
}