查看原帖
479204
ZMY_illusion楼主2023/1/18 14:13
#include<bits/stdc++.h>
using namespace std;
int n,m,w[200005],v[200005],l[200005],r[200005];
long long s,y[200005],sy=0;
int sum1(int a,int l,int r,int j)
{
	int s=0;
	for(int i=l;i<=r;i++)
		if(w[i]>=j)s+=a;
	return s;
}
int sum2(int a[],int l,int r,int j)
{
	int s=0;
	for(int i=l;i<=r;i++)
		if(w[i]>=j)s+=a[i];
	return s;
}
int main()
{
	cin>>n>>m>>s;
	for(int i=1;i<=n;i++) scanf("%d%d",&w[i],&v[i]);
	for(int i=1;i<=m;i++) scanf("%d%d",&l[i],&r[i]);
	int maxw=-1;
	long long miny=100001;
	for(int i=1;i<=n;i++) maxw=max(maxw,w[i]);
	for(int j=1;j<=maxw;j++)
	{
		sy=0;
		for(int i=1;i<=m;i++)
		{
			y[i]=sum1(1,l[i],r[i],j)*sum2(v,l[i],r[i],j);
			sy+=y[i];
		}
		if(sy>=s) miny=min(miny,sy);
	}
	int ans=miny-s;
	if(ans<0)ans*=-1;
	cout<<ans;
 	return 0;
}

2023/1/18 14:13
加载中...