读错题。。。。。。。。。。
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<ctime>
#include<vector>
#include<queue>
#include<map>
using namespace std;
const int N=200100;
int n,m,L[N],R[N];
long long S,w[N],v[N],l=99999999,r=0,sum[N],mz[N],ans=999999999999999999;
inline int judge(long long x){
sum[0]=0;
for(int i=1;i<=n;i++){
if(w[i]>=x) sum[i]=sum[i-1]+v[i],mz[i]=mz[i-1]+1;
else sum[i]=sum[i-1],mz[i]=mz[i-1];
}
long long ret=0;
for(int i=1;i<=m;i++){
ret+=(mz[R[i]]-mz[L[i]-1])*(sum[R[i]]-sum[L[i]-1]);
}
ans=min(ans,abs(S-ret));
if(ret<S) return 1;
else return 0;
}
int main(){
scanf("%d%d%lld",&n,&m,&S);
for(int i=1;i<=n;i++){
scanf("%lld%lld",&w[i],&v[i]);
l=min(w[i],l);
r=max(w[i],r);
}
for(int i=1;i<=m;i++){
scanf("%d%d",&L[i],&R[i]);
}
while(l<=r){
long long W=(l+r)/2;
if(!judge(W)) l=W+1;
else r=W-1;
}
printf("%lld",ans);
return 0;
}