褚明阳 @ 2021-10-21 19:37:55
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
long long cnt[200001][2];
int l[200001],r[200001],w[200001],v[200001];
int main()
{
int n,m,L,R,mid;
long long s,res,ans=__LONG_LONG_MAX__;
scanf("%d%d%lld",&n,&m,&s);
L=0;
for(int i=1;i<=n;i++)
{
scanf("%d%d",w+i,v+i);
R=max(R,w[i]);
}
for(int i=1;i<=m;i++)
scanf("%d%d",l+i,r+i);
while(L<R)
{
res=0;
mid=(L+R)/2;
for(int i=1;i<=n;i++)
if(w[i]>=mid)
{
cnt[i][0]=cnt[i-1][0]+1;
cnt[i][1]=cnt[i-1][1]+v[i];
}
else
{
cnt[i][0]=cnt[i-1][0];
cnt[i][1]=cnt[i-1][1];
}
for(int i=1;i<=m;i++)
res+=(cnt[r[i]][0]-cnt[l[i]-1][0])*(cnt[r[i]][1]-cnt[l[i]-1][1]);
ans=min(ans,abs(res-s));
if(res<s)
R=mid;
else
L=mid+1;
}
printf("%lld",ans);
}
by lichenfan @ 2021-10-21 19:40:00
您的本地AC是指?
by 褚明阳 @ 2021-10-21 19:46:11
测试下载WA的数据过了
开O2洛谷AC 可神奇了