/**
* Author : M1nK
* Device : Laptop
* Created : 25.10.2025
* Problem : https://o...content-available-to-author-only...i.info/problem/dquery
**/
#include <bits/stdc++.h>
// #pragma GCC target ("avx2")
// #pragma GCC optimization ("O3")
// #pragma GCC optimization ("unroll-loops")
// M1nK's Ducky Mask: "Strongest Man In The World"
#define task "TASK"
#define el '\n'
#define fi first
#define se second
#define pi acos (-1)
#define pb push_back
#define ll long long
#define ld long double
#define pll pair <ll, ll>
#define ull unsigned ll
#define pll2 pair <ll, pll>
#define all(a) a.begin (), a.end ()
#define heap_max(a) priority_queue <a>
#define REP(i, n) for (ll i = 0, _n = (n); i < _n; i++)
#define REPD(i, n) for (ll _n = (n), i = _n - 1; i >= 0; i--)
#define FOR(i, a, b) for (ll i = (a), _b = (b); i <= _b; i++)
#define FOD(i, a, b) for (ll i = (a), _b = (b); i >= _b; i--)
#define heap_min(a) priority_queue <a, vector <a>, greater <a>>
#define FOr(i, a, b, c) for (ll i = (a), _b = (b); i <= _b; i += (c))
#define FOd(i, a, b, c) for (ll i = (a), _b = (b); i >= _b; i -= (c))
#define Mirai ios_base:: sync_with_stdio (1 + 1 == 3);
#define Kuriyama cin.tie (nullptr); cout.tie (nullptr);
using namespace std;
const ll INF = LLONG_MAX;
const int MOD = 1e9 + 7;
const int minN = 1e3 + 7;
const int maxN = 1e5 + 7;
const int LOG = __lg (maxN) + 1;
template <class X> ll Mask (X s) { return (1LL << s); }
template <class X> ll BitGet (X s, ll i) { return (s >> i) & 1LL; }
template <class X> ll BitCnt (X s) { return __builtin_popcountll (s); }
template <class X, class Y> bool maximize (X &a, Y b) { return (a < b) ? a = b, 1 : 0; }
template <class X, class Y> bool minimize (X &a, Y b) { return (a > b) ? a = b, 1 : 0; }
// --------------- M1nK_08 --------------- //
ll n, q, l, r;
ll a[maxN], root[maxN], pos[maxN * 10];
ll total;
ll st[maxN * 100], le[maxN * 100], ri[maxN * 100];
void Upd (ll pos, ll val, ll pre, ll &id, ll l = 1, ll r = n) {
id = ++total;
st[id] = st[pre];
le[id] = le[pre];
ri[id] = ri[pre];
if (l == r) { st[id] = val; return; }
ll mid = (l + r) >> 1;
if (pos <= mid) Upd (pos, val, le[id], le[id], l, mid);
else Upd (pos, val, ri[id], ri[id], mid + 1, r);
st[id] = st[le[id]] + st[ri[id]];
}
ll Sum (ll u, ll v, ll id, ll l = 1, ll r = n) {
if (r < u || v < l) return 0;
if (u <= l && r <= v) return st[id];
ll mid = (l + r) >> 1;
return Sum (u, v, le[id], l, mid) + Sum (u, v, ri[id], mid + 1, r);
}
void Solve () {
cin >> n;
FOR (i, 1, n) cin >> a[i];
FOR (i, 1, n) {
ll ver = root[i - 1];
if (pos[a[i]]) Upd (pos[a[i]], 0, ver, ver);
Upd (i, 1, ver, root[i]);
pos[a[i]] = i;
}
cin >> q;
while (q--) {
cin >> l >> r;
cout << Sum (l, r, root[r]) << '\n';
}
}
signed main (void) {
Mirai Kuriyama;
if (fopen (task".INP", "r")) {
freopen (task".INP", "r", stdin);
freopen (task".OUT", "w", stdout);
}
int t = 1;
// cin >> t;
while (t--) Solve ();
return 0;
}
// targeties: 1
LyoqCiogICAgQXV0aG9yIDogTTFuSwoqICAgIERldmljZSA6IExhcHRvcAoqICAgIENyZWF0ZWQgOiAyNS4xMC4yMDI1CiogICAgUHJvYmxlbSA6IGh0dHBzOi8vby4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uaS5pbmZvL3Byb2JsZW0vZHF1ZXJ5CioqLwoKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgovLyAjcHJhZ21hIEdDQyB0YXJnZXQgKCJhdngyIikKLy8gI3ByYWdtYSBHQ0Mgb3B0aW1pemF0aW9uICgiTzMiKQovLyAjcHJhZ21hIEdDQyBvcHRpbWl6YXRpb24gKCJ1bnJvbGwtbG9vcHMiKQoKLy8gIE0xbksncyBEdWNreSBNYXNrOiAiU3Ryb25nZXN0IE1hbiBJbiBUaGUgV29ybGQiCgojZGVmaW5lIHRhc2sgIlRBU0siCgojZGVmaW5lIGVsICdcbicKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIHBpIGFjb3MgKC0xKQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGxkIGxvbmcgZG91YmxlCiNkZWZpbmUgcGxsIHBhaXIgPGxsLCBsbD4KI2RlZmluZSB1bGwgdW5zaWduZWQgbGwKI2RlZmluZSBwbGwyIHBhaXIgPGxsLCBwbGw+CiNkZWZpbmUgYWxsKGEpIGEuYmVnaW4gKCksIGEuZW5kICgpCiNkZWZpbmUgaGVhcF9tYXgoYSkgcHJpb3JpdHlfcXVldWUgPGE+CiNkZWZpbmUgUkVQKGksIG4pIGZvciAobGwgaSA9IDAsIF9uID0gKG4pOyBpIDwgX247IGkrKykKI2RlZmluZSBSRVBEKGksIG4pIGZvciAobGwgX24gPSAobiksIGkgPSBfbiAtIDE7IGkgPj0gMDsgaS0tKQojZGVmaW5lIEZPUihpLCBhLCBiKSBmb3IgKGxsIGkgPSAoYSksIF9iID0gKGIpOyBpIDw9IF9iOyBpKyspCiNkZWZpbmUgRk9EKGksIGEsIGIpIGZvciAobGwgaSA9IChhKSwgX2IgPSAoYik7IGkgPj0gX2I7IGktLSkKI2RlZmluZSBoZWFwX21pbihhKSBwcmlvcml0eV9xdWV1ZSA8YSwgdmVjdG9yIDxhPiwgZ3JlYXRlciA8YT4+CiNkZWZpbmUgRk9yKGksIGEsIGIsIGMpIGZvciAobGwgaSA9IChhKSwgX2IgPSAoYik7IGkgPD0gX2I7IGkgKz0gKGMpKQojZGVmaW5lIEZPZChpLCBhLCBiLCBjKSBmb3IgKGxsIGkgPSAoYSksIF9iID0gKGIpOyBpID49IF9iOyBpIC09IChjKSkKCiNkZWZpbmUgTWlyYWkgaW9zX2Jhc2U6OiBzeW5jX3dpdGhfc3RkaW8gKDEgKyAxID09IDMpOwojZGVmaW5lIEt1cml5YW1hIGNpbi50aWUgKG51bGxwdHIpOyBjb3V0LnRpZSAobnVsbHB0cik7Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBsbCBJTkYgPSBMTE9OR19NQVg7CmNvbnN0IGludCBNT0QgPSAxZTkgKyA3Owpjb25zdCBpbnQgbWluTiA9IDFlMyArIDc7CmNvbnN0IGludCBtYXhOID0gMWU1ICsgNzsKY29uc3QgaW50IExPRyA9IF9fbGcgKG1heE4pICsgMTsgCgp0ZW1wbGF0ZSA8Y2xhc3MgWD4gbGwgTWFzayAoWCBzKSB7IHJldHVybiAoMUxMIDw8IHMpOyB9CnRlbXBsYXRlIDxjbGFzcyBYPiBsbCBCaXRHZXQgKFggcywgbGwgaSkgeyByZXR1cm4gKHMgPj4gaSkgJiAxTEw7IH0KdGVtcGxhdGUgPGNsYXNzIFg+IGxsIEJpdENudCAoWCBzKSB7IHJldHVybiBfX2J1aWx0aW5fcG9wY291bnRsbCAocyk7IH0KdGVtcGxhdGUgPGNsYXNzIFgsIGNsYXNzIFk+IGJvb2wgbWF4aW1pemUgKFggJmEsIFkgYikgeyByZXR1cm4gKGEgPCBiKSA/IGEgPSBiLCAxIDogMDsgfQp0ZW1wbGF0ZSA8Y2xhc3MgWCwgY2xhc3MgWT4gYm9vbCBtaW5pbWl6ZSAoWCAmYSwgWSBiKSB7IHJldHVybiAoYSA+IGIpID8gYSA9IGIsIDEgOiAwOyB9CgovLyAtLS0tLS0tLS0tLS0tLS0gTTFuS18wOCAtLS0tLS0tLS0tLS0tLS0gLy8KCmxsIG4sIHEsIGwsIHI7CgpsbCBhW21heE5dLCByb290W21heE5dLCBwb3NbbWF4TiAqIDEwXTsKCmxsIHRvdGFsOwpsbCBzdFttYXhOICogMTAwXSwgbGVbbWF4TiAqIDEwMF0sIHJpW21heE4gKiAxMDBdOwp2b2lkIFVwZCAobGwgcG9zLCBsbCB2YWwsIGxsIHByZSwgbGwgJmlkLCBsbCBsID0gMSwgbGwgciA9IG4pIHsKICAgIGlkID0gKyt0b3RhbDsKICAgIHN0W2lkXSA9IHN0W3ByZV07CiAgICBsZVtpZF0gPSBsZVtwcmVdOwogICAgcmlbaWRdID0gcmlbcHJlXTsKICAgIGlmIChsID09IHIpIHsgc3RbaWRdID0gdmFsOyByZXR1cm47IH0KICAgIGxsIG1pZCA9IChsICsgcikgPj4gMTsKICAgIGlmIChwb3MgPD0gbWlkKSBVcGQgKHBvcywgdmFsLCBsZVtpZF0sIGxlW2lkXSwgbCwgbWlkKTsKICAgIGVsc2UgVXBkIChwb3MsIHZhbCwgcmlbaWRdLCByaVtpZF0sIG1pZCArIDEsIHIpOwogICAgc3RbaWRdID0gc3RbbGVbaWRdXSArIHN0W3JpW2lkXV07Cn0KbGwgU3VtIChsbCB1LCBsbCB2LCBsbCBpZCwgbGwgbCA9IDEsIGxsIHIgPSBuKSB7CiAgICBpZiAociA8IHUgfHwgdiA8IGwpIHJldHVybiAwOwogICAgaWYgKHUgPD0gbCAmJiByIDw9IHYpIHJldHVybiBzdFtpZF07CiAgICBsbCBtaWQgPSAobCArIHIpID4+IDE7CiAgICByZXR1cm4gU3VtICh1LCB2LCBsZVtpZF0sIGwsIG1pZCkgKyBTdW0gKHUsIHYsIHJpW2lkXSwgbWlkICsgMSwgcik7Cn0KCnZvaWQgU29sdmUgKCkgewogICAgY2luID4+IG47CiAgICBGT1IgKGksIDEsIG4pIGNpbiA+PiBhW2ldOwogICAgRk9SIChpLCAxLCBuKSB7CiAgICAgICAgbGwgdmVyID0gcm9vdFtpIC0gMV07CiAgICAgICAgaWYgKHBvc1thW2ldXSkgVXBkIChwb3NbYVtpXV0sIDAsIHZlciwgdmVyKTsKICAgICAgICBVcGQgKGksIDEsIHZlciwgcm9vdFtpXSk7CiAgICAgICAgcG9zW2FbaV1dID0gaTsKICAgIH0KCiAgICBjaW4gPj4gcTsKICAgIHdoaWxlIChxLS0pIHsKICAgICAgICBjaW4gPj4gbCA+PiByOwogICAgICAgIGNvdXQgPDwgU3VtIChsLCByLCByb290W3JdKSA8PCAnXG4nOwogICAgfQp9CgpzaWduZWQgbWFpbiAodm9pZCkgewogICAgTWlyYWkgS3VyaXlhbWE7ICAKICAgIGlmIChmb3BlbiAodGFzayIuSU5QIiwgInIiKSkgewogICAgICAgIGZyZW9wZW4gKHRhc2siLklOUCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4gKHRhc2siLk9VVCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIGludCB0ID0gMTsgCiAgICAvLyBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pIFNvbHZlICgpOwogICAgcmV0dXJuIDA7Cn0KLy8gdGFyZ2V0aWVzOiAxCg==