千万注意,要long long
#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long ll;
const int N = 200010;
int n, m;
ll s;
int w[N], v[N];
int l[N], r[N];
int cnt[N];
ll sum[N];
ll check(int mid) {
for (int i = 1; i <= n; ++ i) {
if (w[i] >= mid) {
sum[i] = sum[i - 1] + v[i];
cnt[i] = cnt[i - 1] + 1;
} else {
sum[i] = sum[i - 1];
cnt[i] = cnt[i - 1];
}
}
ll res = 0;
for (int i = 0; i < m; ++ i) {
res += (cnt[r[i]] - cnt[l[i] - 1]) * (sum[r[i]] - sum[l[i] - 1]);
}
return res;
}
int main() {
scanf("%d%d%lld", &n, &m, &s);
for (int i = 1; i <= n; ++ i) scanf("%d%d", &w[i], &v[i]);
for (int i = 0; i < m; ++ i) scanf("%d%d", &l[i], &r[i]);
int l = 0, r = 1e6 + 1;
while ( l < r ) {
int mid = (l + r + 1) >> 1;
if (check(mid) >= s) l = mid;
else r = mid - 1;
}
printf("%lld\n", min(abs(check(r) - s), abs(s - check(r + 1))));
return 0;
}