还是90 QWQ
查看原帖
还是90 QWQ
361141
_JF_殉情楼主2022/7/24 20:08

特判加了,但还是90....

#include<bits/stdc++.h>
using namespace std;
const int N =1e6+10;
#define int long long
int vis[N],a[N];
priority_queue<int,vector<int>,greater<int> >q;
signed main()
{
	int n,maxx=-INT_MAX,minn=INT_MAX<<1;
	cin>>n;
	for(int i=1,x;i<=n;i++)
	{
		cin>>x,q.push(x);
		a[i]=x;
		minn=min(minn,x);
	}
	int m;
	cin>>m;
	if(m<minn)
	{
		cout<<"0"<<endl;
		return 0;
	}
	for(int i=1;i<=n;i++)
	{
		if(a[i]<m)
			maxx=max(maxx,a[i]); 
	}
	int sum=0,ans=0;
	bool flag=false;
	while(!q.empty())
	{
		int now=q.top();
		if(now==maxx&&flag==false)
		{
			flag=true;
			q.pop();
			continue;
		}
		if(sum+now<=maxx)
		{
			sum+=now;
			ans++;
			q.pop();
		}
		else
			break;
	}
	cout<<ans<<endl;
}
2022/7/24 20:08
加载中...