1 #include<stdio.h>
2 #include<string.h>
3 int ql,qr,p;
4 long long fsum,v;
5 int f[100005],g[100005],a[100005],b[100005];
6 int r[100005],l[100005],hash[100005],real[100005];
7 long long ans[100005],sumv[300005];
8 void mysort(int l,int r)
9 {
10 int i=l,j=r,x=a[(i+j)/2],y;
11 while (i<=j)
12 {
13 while (a[i]<x) i++;
14 while (x<a[j]) j--;
15 if (i<=j)
16 {
17 y=a[i]; a[i]=a[j]; a[j]=y;
18 y=g[i]; g[i]=g[j]; g[j]=y;
19 i++; j--;
20 }
21 }
22 if (i<r) mysort(i,r);
23 if (l<j) mysort(l,j);
24 }
25 void yoursort(int ll,int rr)
26 {
27 int i=ll,j=rr,x=r[(i+j)/2],y;
28 while (i<=j)
29 {
30 while (r[i]<x) i++;
31 while (x<r[j]) j--;
32 if (i<=j)
33 {
34 y=r[i]; r[i]=r[j]; r[j]=y;
35 y=l[i]; l[i]=l[j]; l[j]=y;
36 y=f[i]; f[i]=f[j]; f[j]=y;
37 i++; j--;
38 }
39 }
40 if (ll<j) yoursort(ll,j);
41 if (i<rr) yoursort(i,rr);
42 }
43 void update(int o,int l,int r)
44 {
45 int mid=l+(r-l)/2;
46 if (l==r) sumv[o]=v;
47 else{
48 if (p<=mid) update(o*2,l,mid);
49 else update(o*2+1,mid+1,r);
50 sumv[o]=sumv[o*2]+sumv[o*2+1];
51 }
52 }
53 void query(int o,int l,int r)
54 {
55 int mid=l+(r-l)/2;
56 if (ql<=l&&r<=qr) fsum+=sumv[o];
57 else{
58 if (ql<=mid) query(o*2,l,mid);
59 if (mid<qr) query(o*2+1,mid+1,r);
60 }
61 }
62 int main()
63 {
64 int T,n,i,m,j;
65 scanf("%d",&T);
66 while (T--)
67 {
68 scanf("%d",&n);
69 for (i=1;i<=n;i++) { scanf("%d",&a[i]); g[i]=i; real[i]=a[i];}
70 mysort(1,n);
71 b[g[1]]=1;
72 for (i=2;i<=n;i++)
73 if (a[i]==a[i-1]) b[g[i]]=b[g[i-1]];
74 else b[g[i]]=i;
75 memset(hash,0,sizeof(hash));
76 memset(sumv,0,sizeof(sumv));
77 scanf("%d",&m);
78 for (i=1;i<=m;i++) {f[i]=i; scanf("%d%d",&l[i],&r[i]); }
79 yoursort(1,m);
80 for (i=1;i<=r[1];i++)
81 {
82 if (hash[b[i]]!=0)
83 {
84 p=hash[b[i]]; v=0;
85 update(1,1,n);
86 }
87 p=i; v=real[i];
88 update(1,1,n);
89 hash[b[i]]=i;
90 }
91 ql=l[1]; qr=r[1]; fsum=0;
92 query(1,1,n);
93 ans[f[1]]=fsum;
94 for (i=2;i<=m;i++)
95 {
96 for (j=r[i-1]+1;j<=r[i];j++)
97 {
98 if (hash[b[j]]!=0)
99 {
100 p=hash[b[j]]; v=0;
101 update(1,1,n);
102 }
103 p=j; v=real[j];
104 update(1,1,n);
105 hash[b[j]]=j;
106 }
107 ql=l[i]; qr=r[i]; fsum=0;
108 query(1,1,n);
109 ans[f[i]]=fsum;
110 }
111 for (i=1;i<=m;i++) printf("%I64d\n",ans[i]);
112 }
113 }