全TLE,大佬求助!!!
查看原帖
全TLE,大佬求助!!!
932347
abcTB楼主2023/8/10 14:24
#include<bits/stdc++.h>
using namespace std;
long long n,m,s,l,r,mid,ans,g,cxk=0;
long long w[999999],v[999999],sumw[999999],sumv[999999],x[999999],y[999999];
int main()
{
	cin>>n>>m>>s;
	for(int i=1;i<=n;i++){
		cin>>w[i]>>v[i];
		r=max(r,w[i]);
	}
	for(int i=1;i<=m;i++) {
		cin>>sumw[i]>>sumv[i];
	}	
	while(l<=r){
		ans=0,mid=(l+r)>>1;
		for(int i=1;i<=n;i++){
			if(w[i]>mid){
				x[i]=x[i-1]+1,y[i]=y[i-1]+v[i];
		    }
			else
				x[i]=x[i-1],y[i]=y[i-1];
		}
		for(int i=1;i<=m;i++){
			ans+=(x[sumv[i]]-x[sumw[i]-1])*(y[sumv[i]]-y[sumw[i]-1]);
	    }
		g=s-ans;        
		if(g<0){
		   r=mid+1;	
		}     
		else l=mid-1;        
		cxk=min(cxk,abs(g)); 
	}
	cout<<cxk;
}
2023/8/10 14:24
加载中...