求大神指导
查看原帖
求大神指导
1001852
majiatao楼主2023/11/26 17:39
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,m,a[500000+5],s[500000+5],e,k,l=1,r,ans=0,mid;
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	sort(a+1,a+n+1);
	s[1]=a[1];
	for(int i=2;i<=n;i++)
		s[i]=s[i-1]+a[i];
	for(int i=1;i<=m;i++)
	{
		cin>>e;
		if(e==1)
		{
			cin>>k;
			ans+=k;
		}
		else 
		{
			ll sum=0;
			l=1,r=n;
			while(l<r)
			{
				ll mid=(l+r)/2;
				if(a[mid]+ans>0) r=mid;
				else if(a[mid]+ans<0) l=mid+1;
				else r=mid;
			}
			sum=s[n]-s[r-1];
			cout<<sum<<endl;
		}
	}	 
	return 0;
}
2023/11/26 17:39
加载中...