#include<bits/stdc++.h>
using namespace std;
vector<pair <int, int>> tree;
pair <int, int> merge(pair <int, int> a, pair <int, int> b) {
if(a.first > b.first) return a;
if( a.first < b.first) return b;
return {a.first, a.second+b.second};
}
void build(int a[], int v, int l, int r) {
if(r-l==1) {
tree[v].first = a[l];
tree[v].second = l;
return;
}
int m = (l+r) / 2;
build(a, 2*v+1, l, m);
build(a, 2*v+2, m, r);
tree[v] = merge(tree[2*v+1], tree[2*v+2]);
}
pair <int, int> get(int v, int l, int r, int ql, int qr) {
pair <int, int> E={0, 1};
if (ql<=l and r<=qr) {
return tree[v];
}
if (r<=ql or qr<=l) {
return E;
}
int m = (l+r) / 2;
return merge(get(2*v+1, l, m, ql, qr), get(2*v+2, m, r, ql, qr));
}
int main() {
int n;
cin >> n;
tree.resize(4*n);
int a[n];
for (int i = 0; i < n; i++)
cin >> a[i];
build(a, 0, 0, n);
int k;
cin >> k;
while(k--) {
int l, r;
cin >> l >> r;
cout << get(0, 0, n, l-1, r).second+1 << '\n';
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdmVjdG9yPHBhaXIgPGludCwgaW50Pj4gdHJlZTsKcGFpciA8aW50LCBpbnQ+IG1lcmdlKHBhaXIgPGludCwgaW50PiBhLCBwYWlyIDxpbnQsIGludD4gYikgewoJaWYoYS5maXJzdCA+IGIuZmlyc3QpIHJldHVybiBhOwoJaWYoIGEuZmlyc3QgPCBiLmZpcnN0KSByZXR1cm4gYjsKCXJldHVybiB7YS5maXJzdCwgYS5zZWNvbmQrYi5zZWNvbmR9Owp9CnZvaWQgYnVpbGQoaW50IGFbXSwgaW50IHYsIGludCBsLCBpbnQgcikgewoJaWYoci1sPT0xKSB7CgkJdHJlZVt2XS5maXJzdCA9IGFbbF07CgkJdHJlZVt2XS5zZWNvbmQgPSBsOwoJCXJldHVybjsKCX0KCWludCBtID0gKGwrcikgLyAyOwoJYnVpbGQoYSwgMip2KzEsIGwsIG0pOwoJYnVpbGQoYSwgMip2KzIsIG0sIHIpOwoJdHJlZVt2XSA9IG1lcmdlKHRyZWVbMip2KzFdLCB0cmVlWzIqdisyXSk7Cn0KcGFpciA8aW50LCBpbnQ+IGdldChpbnQgdiwgaW50IGwsIGludCByLCBpbnQgcWwsIGludCBxcikgewoJcGFpciA8aW50LCBpbnQ+IEU9ezAsIDF9OwoJaWYgKHFsPD1sIGFuZCByPD1xcikgewoJCXJldHVybiB0cmVlW3ZdOwoJfQoJaWYgKHI8PXFsIG9yIHFyPD1sKSB7CgkJcmV0dXJuIEU7Cgl9CglpbnQgbSA9IChsK3IpIC8gMjsKCXJldHVybiBtZXJnZShnZXQoMip2KzEsIGwsIG0sIHFsLCBxciksIGdldCgyKnYrMiwgbSwgciwgcWwsIHFyKSk7Cn0KaW50IG1haW4oKSB7CglpbnQgbjsKCWNpbiA+PiBuOwoJdHJlZS5yZXNpemUoNCpuKTsKCWludCBhW25dOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIAoJCWNpbiA+PiBhW2ldOwoJYnVpbGQoYSwgMCwgMCwgbik7CglpbnQgazsKCWNpbiA+PiBrOwoJd2hpbGUoay0tKSB7CgkJaW50IGwsIHI7CgkJY2luID4+IGwgPj4gcjsKCQljb3V0IDw8IGdldCgwLCAwLCBuLCBsLTEsIHIpLnNlY29uZCsxIDw8ICdcbic7Cgl9CglyZXR1cm4gMDsKfQ==