#include <cstdio>
#include <iostream>
#include <vector>
#include <list>
#include <queue>
#include <map>
#include <set>
#include <utility>
#include <functional>
#include <string>
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <cassert>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef map<int,int> mii;
typedef vector<int> vi;
typedef vector< vector<int> > vvi;
typedef vector<char> vc;
typedef vector<bool> vb;
typedef vector<string> vs;
#define rep(i,n) for(int i=0;i<(n);i++)
#define forup(i,a,b) for(int i=(a);i<=(b);i++)
#define fordn(i,a,b) for(int i=(a);i>=(b);i--)
#define drep(i,n) for(i=0;i<(n);i++)
#define dforup(i,a,b) for(i=(a);i<=(b);i++)
#define dfordn(i,a,b) for(i=(a);i>=(b);i--)
#define all(x) x.begin(),x.end()
#define permute(x) next_permutation(all(x))
#define pb push_back
#define mp make_pair
#define fi first
#define sc second
#define gi(x) scanf("%d",&x)
/************************BIT Codechunk**************************/
struct BIT
{
int bn; //bn>0
vector<int> bA;
BIT(){ bn=0; }
BIT(int bn_){ bn=bn_; bA.resize(bn+1); fill(bA.begin(),bA.end(),0); }
int prefix(int bposn)
{
if(bposn<=0) return 0;
if(bposn>bn) bposn=bn;
int ret=0;
for(int i=bposn; i>0; i-=((i)&(-i)))
ret+=bA[i];
return ret;
}
void update(int bposn, int bincr)
{
if(bposn<=0) return;
if(bposn>bn) return;
for(int i=bposn; i<=bn; i+=((i)&(-i)))
bA[i]+=bincr;
}
int query(int bl, int br)
{
if(br<=0 or bl>bn or bl>br) return 0;
if(bl<=0) bl=1;
if(br>bn) br=bn;
return (prefix(br)-prefix(bl-1));
}
};
/******************End of BIT Codechunk*************************/
struct query_t {
int l,r,ix;
query_t(int l_,int r_,int ix_) {
l=l_; r=r_; ix=ix_;
}
};
bool operator<(query_t q1,query_t q2) {
return (q1.r<q2.r);
}
const int max_n=20010;
const int max_q=20010;
int n,q,l,r;
int a[max_n]; int ta[max_n];
mii M; int cnt;
vector<query_t> chunks[150];
int ans[max_q];
BIT bit;
int main() {
gi(n);
assert(n <= 20000);
assert(n >= 1);
int root=(int)ceil(sqrt(double(n)));
rep(i,n) {
gi(a[i]);
assert(a[i] <= 1000000000);
assert(a[i] >= 0);
ta[i]=a[i];
}
gi(q);
assert(q <= 20000);
assert(q >= 1);
rep(i,q) {
gi(l); gi(r);
assert(l <= r);
assert(r <= n);
assert(l >= 1);
l--; r--;
chunks[l/root].pb(query_t(l,r,i));
}
sort(ta,ta+n);
cnt=int(unique(ta,ta+n)-ta);
rep(i,n)
a[i]=1+int(lower_bound(ta,ta+cnt,a[i])-ta);
int sz=(n+root-1)/root;
n=cnt;
rep(i,sz) {
int cl=root*i;
int cr=cl-1;
int res=0;
bit=BIT(n);
sort(chunks[i].begin(),chunks[i].end());
rep(j,chunks[i].size()) {
l=chunks[i][j].l; r=chunks[i][j].r; int ix=chunks[i][j].ix;
while(cr!=r) {
++cr;
res+=bit.query(a[cr]+1,n);
bit.update(a[cr],1);
}
if(l>=cl) {
while(cl!=l) {
res-=bit.prefix(a[cl]-1);
bit.update(a[cl],-1);
++cl;
}
}
else {
while(cl!=l) {
--cl;
res+=bit.prefix(a[cl]-1);
bit.update(a[cl],1);
}
}
ans[ix]=res;
}
}
rep(i,q) printf("%d\n",ans[i]);
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bGlzdD4KI2luY2x1ZGUgPHF1ZXVlPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8dXRpbGl0eT4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxjdGltZT4KI2luY2x1ZGUgPGNhc3NlcnQ+CiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiBwYWlyPGludCxpbnQ+IHBpaTsKdHlwZWRlZiBtYXA8aW50LGludD4gbWlpOwp0eXBlZGVmIHZlY3RvcjxpbnQ+IHZpOwp0eXBlZGVmIHZlY3RvcjwgdmVjdG9yPGludD4gPiB2dmk7CnR5cGVkZWYgdmVjdG9yPGNoYXI+IHZjOwp0eXBlZGVmIHZlY3Rvcjxib29sPiB2YjsKdHlwZWRlZiB2ZWN0b3I8c3RyaW5nPiB2czsKIAojZGVmaW5lIHJlcChpLG4pIGZvcihpbnQgaT0wO2k8KG4pO2krKykKI2RlZmluZSBmb3J1cChpLGEsYikgZm9yKGludCBpPShhKTtpPD0oYik7aSsrKQojZGVmaW5lIGZvcmRuKGksYSxiKSBmb3IoaW50IGk9KGEpO2k+PShiKTtpLS0pCiNkZWZpbmUgZHJlcChpLG4pIGZvcihpPTA7aTwobik7aSsrKQojZGVmaW5lIGRmb3J1cChpLGEsYikgZm9yKGk9KGEpO2k8PShiKTtpKyspCiNkZWZpbmUgZGZvcmRuKGksYSxiKSBmb3IoaT0oYSk7aT49KGIpO2ktLSkKI2RlZmluZSBhbGwoeCkgeC5iZWdpbigpLHguZW5kKCkKI2RlZmluZSBwZXJtdXRlKHgpIG5leHRfcGVybXV0YXRpb24oYWxsKHgpKQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Mgc2Vjb25kCiNkZWZpbmUgZ2koeCkgc2NhbmYoIiVkIiwmeCkKIAovKioqKioqKioqKioqKioqKioqKioqKioqQklUIENvZGVjaHVuayoqKioqKioqKioqKioqKioqKioqKioqKioqLwogCnN0cnVjdCBCSVQKewoJaW50IGJuOyAvL2JuPjAKCXZlY3RvcjxpbnQ+IGJBOwoJCglCSVQoKXsgYm49MDsgfQoJQklUKGludCBibl8peyBibj1ibl87IGJBLnJlc2l6ZShibisxKTsgZmlsbChiQS5iZWdpbigpLGJBLmVuZCgpLDApOyB9CgkKCWludCBwcmVmaXgoaW50IGJwb3NuKQoJewoJCWlmKGJwb3NuPD0wKSByZXR1cm4gMDsKCQlpZihicG9zbj5ibikgYnBvc249Ym47CgkJCgkJaW50IHJldD0wOwoJCWZvcihpbnQgaT1icG9zbjsgaT4wOyBpLT0oKGkpJigtaSkpKQoJCQlyZXQrPWJBW2ldOwoJCXJldHVybiByZXQ7Cgl9CgkKCXZvaWQgdXBkYXRlKGludCBicG9zbiwgaW50IGJpbmNyKQoJewoJCWlmKGJwb3NuPD0wKSByZXR1cm47CgkJaWYoYnBvc24+Ym4pIHJldHVybjsKCQkKCQlmb3IoaW50IGk9YnBvc247IGk8PWJuOyBpKz0oKGkpJigtaSkpKQoJCQliQVtpXSs9YmluY3I7Cgl9CgkKCWludCBxdWVyeShpbnQgYmwsIGludCBicikKCXsKCQlpZihicjw9MCBvciBibD5ibiBvciBibD5icikgcmV0dXJuIDA7CgkJaWYoYmw8PTApIGJsPTE7CgkJaWYoYnI+Ym4pIGJyPWJuOwoJCXJldHVybiAocHJlZml4KGJyKS1wcmVmaXgoYmwtMSkpOwoJfQp9OwogCi8qKioqKioqKioqKioqKioqKipFbmQgb2YgQklUIENvZGVjaHVuayoqKioqKioqKioqKioqKioqKioqKioqKiovCiAKc3RydWN0IHF1ZXJ5X3QgewoJaW50IGwscixpeDsKCXF1ZXJ5X3QoaW50IGxfLGludCByXyxpbnQgaXhfKSB7CgkJbD1sXzsgcj1yXzsgaXg9aXhfOwoJfQp9OwogCmJvb2wgb3BlcmF0b3I8KHF1ZXJ5X3QgcTEscXVlcnlfdCBxMikgewoJcmV0dXJuIChxMS5yPHEyLnIpOwp9CiAKY29uc3QgaW50IG1heF9uPTIwMDEwOwpjb25zdCBpbnQgbWF4X3E9MjAwMTA7CmludCBuLHEsbCxyOwppbnQgYVttYXhfbl07IGludCB0YVttYXhfbl07Cm1paSBNOyBpbnQgY250Owp2ZWN0b3I8cXVlcnlfdD4gY2h1bmtzWzE1MF07CmludCBhbnNbbWF4X3FdOwpCSVQgYml0OwogCmludCBtYWluKCkgewoJZ2kobik7Cglhc3NlcnQobiA8PSAyMDAwMCk7Cglhc3NlcnQobiA+PSAxKTsKCWludCByb290PShpbnQpY2VpbChzcXJ0KGRvdWJsZShuKSkpOwoJcmVwKGksbikgewoJCWdpKGFbaV0pOwoJCWFzc2VydChhW2ldIDw9IDEwMDAwMDAwMDApOwoJCWFzc2VydChhW2ldID49IDApOwoJCXRhW2ldPWFbaV07Cgl9CglnaShxKTsKCWFzc2VydChxIDw9IDIwMDAwKTsKCWFzc2VydChxID49IDEpOwoJcmVwKGkscSkgewoJCWdpKGwpOyBnaShyKTsKCQlhc3NlcnQobCA8PSByKTsKCQlhc3NlcnQociA8PSBuKTsKCQlhc3NlcnQobCA+PSAxKTsKCQlsLS07IHItLTsKCQljaHVua3NbbC9yb290XS5wYihxdWVyeV90KGwscixpKSk7Cgl9CiAKCXNvcnQodGEsdGErbik7CgljbnQ9aW50KHVuaXF1ZSh0YSx0YStuKS10YSk7CglyZXAoaSxuKQoJCWFbaV09MStpbnQobG93ZXJfYm91bmQodGEsdGErY250LGFbaV0pLXRhKTsKCWludCBzej0obityb290LTEpL3Jvb3Q7CgluPWNudDsKCXJlcChpLHN6KSB7CgkJaW50IGNsPXJvb3QqaTsKCQlpbnQgY3I9Y2wtMTsKCQlpbnQgcmVzPTA7CgkJYml0PUJJVChuKTsKCQlzb3J0KGNodW5rc1tpXS5iZWdpbigpLGNodW5rc1tpXS5lbmQoKSk7CgkJcmVwKGosY2h1bmtzW2ldLnNpemUoKSkgewoJCQlsPWNodW5rc1tpXVtqXS5sOyByPWNodW5rc1tpXVtqXS5yOyBpbnQgaXg9Y2h1bmtzW2ldW2pdLml4OwoJCQl3aGlsZShjciE9cikgewoJCQkJKytjcjsKCQkJCXJlcys9Yml0LnF1ZXJ5KGFbY3JdKzEsbik7CgkJCQliaXQudXBkYXRlKGFbY3JdLDEpOwoJCQl9CgkJCWlmKGw+PWNsKSB7CgkJCQl3aGlsZShjbCE9bCkgewoJCQkJCXJlcy09Yml0LnByZWZpeChhW2NsXS0xKTsKCQkJCQliaXQudXBkYXRlKGFbY2xdLC0xKTsKCQkJCQkrK2NsOwoJCQkJfQoJCQl9CgkJCWVsc2UgewoJCQkJd2hpbGUoY2whPWwpIHsKCQkJCQktLWNsOwoJCQkJCXJlcys9Yml0LnByZWZpeChhW2NsXS0xKTsKCQkJCQliaXQudXBkYXRlKGFbY2xdLDEpOwoJCQkJfQoJCQl9CgkJCWFuc1tpeF09cmVzOwoJCX0KCX0KCXJlcChpLHEpIHByaW50ZigiJWRcbiIsYW5zW2ldKTsKCXJldHVybiAwOwp9