#include<bits/stdc++.h>
using namespace std;
const int MAXN = 1e6 + 5;
#define int long long
int n, m;
int qzh[MAXN];
int b[MAXN];
struct Node {
int v, id;
friend bool operator < (const Node& x, const Node& y) {
return x.v < y.v;
}
}a[MAXN];
main() {
cin >> n;
a[0].v = INT_MIN;
for (int i = 1; i <= n; i++) {
cin >> a[i].v;
a[i].id = i;
}
cin >> m;
sort(a + 1, a + 1 + n);
qzh[1] = a[1].v;
for (int i = 2; i <= n; i++) {
qzh[i] = qzh[i - 1] + a[i].v;
}
for (int i = 1; i <= n; i++) {
b[a[i].id] = i;
}
long long result = 0;
for (int i = 1; i <= n; i++) {
result += i * a[i].v;
}
while (m--) {
int i, j;
cin >> i >> j;
if (a[b[i]].v > j) {
int l = 1, r = n;
int ans = b[i];
while (l <= r) {
int mid = (l + r) / 2;
if (a[mid].v > j) {
r = mid - 1;
ans = mid;
}
else {
l = mid + 1;
}
}
cout << result + (j * ans - a[b[i]].v * b[i]) + (qzh[b[i] - 1] - qzh[ans - 1]) << endl;
}
else {
int l = 0, r = n;
int ans = b[i];
while (l <= r) {
int mid = (l + r) / 2;
if (a[mid].v > j) {
r = mid - 1;
ans = mid;
}
else {
l = mid + 1;
}
}
cout << result + (j * (ans - 1) - a[b[i]].v * b[i]) + (qzh[b[i]] - qzh[ans - 1]) << endl;
}
}
return 0;
}