n,m,s要开long long
n,m,s要开long long
n,m,s要开long long
#include<iostream>
#include<cmath>
using namespace std;
const int N = 1e6 + 6;
const int INF = 0x3f3f3f3f;
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
long long n, m, s;//n 矿石个数 m 区间个数 s 标准值
long long v[N], w[N], cnt[N], sumv[N];//v 价值 w 重量
int l[N], r[N];
long long solve(int W) {
for (int i = 1;i <= n;i++) {
if (w[i] >= W) {
sumv[i] = sumv[i - 1] + v[i];
cnt[i] = cnt[i - 1] + 1;
}
else {
sumv[i] = sumv[i - 1];
cnt[i] = cnt[i - 1];
}
}
long long sum = 0;
for (int i = 1;i <= m;i++)
sum += (cnt[r[i]] - cnt[l[i] - 1]) * (sumv[r[i]] - sumv[l[i] - 1]);
return sum;
}
int main() {
IOS;
cin >> n >> m >> s;
for (int i = 1;i <= n;i++)
cin >> w[i] >> v[i];
for (int i = 1;i <= m;i++)
cin >> l[i] >> r[i];
int left = 0, right = INF;
while (left <= right) {
int mid = (left + right) >> 1;
if (solve(mid) >= s) left = mid + 1;
else right = mid - 1;
}
cout << min(abs(solve(right) - s), abs(solve(right + 1) - s)) << endl;
return 0;
}