#include <bits/stdc++.h>
#define int long long
using namespace std;
constexpr int N = 1e6 + 10, INF = 2e9;
int n, m, num1, num2;
int a[N]; // 存原本数据
int w[N]; // 存区间权值;
int cnt = 0;
int b[N]; // 差分数组
void insert(int l, int r, int c) // 操作函数,把a[L]~a[R]全部加上c
{
b[l] += c;
b[r + 1] -= c;
}
// for (int i = 1; i <= n; i++) // 输出变化后数组;
// {
// b[i] += b[i - 1]; // 求前缀和运算
// cout << b[i];
// }
void solve()
{
int n;
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
}
int m;
cin >> m;
for (int i = 1; i <= m; i++)
{
int l, r;
cin >> l >> r;
insert(l, r, 1);
}
// 处理区间权值;
for (int i = 1; i <= n; i++)
{
b[i] += b[i - 1];
}
int sum = 0;
for (int i = 1; i <= n; i++)
{
sum += a[i] * b[i];
}
sort(a + 1, a + n + 1, greater<int>());
sort(b + 1, b + n + 1, greater<int>());
int res = 0;
int l = 1, r = 1;
while (b[r] != 0 && l <= n)
{
res += a[l] * b[r];
l++, r++;
}
cout << res - sum << endl;
}
signed main()
{
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int T = 1;
// cin>>T;
while (T--)
{
solve();
}
return 0;
}