求败 @ 2017-10-01 09:35:15
_蒟蒻程序有什么问题吗?WA了七个点_
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
long long n,m,k,s,S,W=0,ans=0x7fffffff,mid,y,l,r,
w[1000100],v[1000100],a[200200][2],g[200200],t[200200];
void in(){
scanf("%lld%lld%lld",&n,&m,&S);
for(int i=1;i<=n;i++){
scanf("%lld%lld",&w[i],&v[i]);
W=max(W,w[i]);
}
for(int i=1;i<=m;i++)
scanf("%lld%lld",&a[i][0],&a[i][1]);
return;
}
int main(){
in();
l=0,r=W+1;
while(l<=r){
mid=(l+r)/2;
s=0;
for(int i=1;i<=n;i++){
if(w[i]>=mid)g[i]=g[i-1]+v[i],t[i]=t[i-1]+1;
else g[i]=g[i-1],t[i]=t[i-1];
}
for(int i=1;i<=m;i++)
s+=(g[a[i][1]]-g[a[i][0]-1])*(t[a[i][1]]-t[a[i][0]-1]);
k=max(S-s,s-S);
ans=min(ans,k);
if(s-S==0){
cout<<'0';
return 0;
}
else if(s>S)l=mid+1;
else r=mid-1;
}
cout<<ans;
return 0;
}