//数据离散化
void discretization() {
for (int i = 1; i <= n; ++i)
b[i] = a[i];
sort(b+1, b+n+1);
int m = unique(b+1, b+n+1) - (b+1);
for (int i = 1; i <= n; ++i) {
int v = a[i];
a[i] = lower_bound(b+1, b+m+1, v) - b;
c[a[i]] += v;
}
for (int i = 1; i <= m; ++i)
s[i] = s[i-1] + c[i]; //前缀和
while (q--) {
scanf("%d%d", &l, &r);
l = lower_bound(b+1, b+m+1, l) - b; //查找
r = lower_bound(b+1, b+m+1, r) - b;
printf("%d\n", s[r] - s[l-1]);
}
}