萌新求问错在了哪里?
#include <bits/stdc++.h>
#define N 2000000
using namespace std;
int a[N],n,m,b[N],c[N],book[N];
void add(int ar[],int x,int k){for(;x<=n;x+=x&-x){ar[x]+=k;}}
int ask(int ar[],int x){int res=0;for(;x>0;x-=x&-x){res+=ar[x];}return res;}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
if(book[a[i]])add(c,i,1);
add(b,i,1);
book[a[i]]=1;
}
scanf("%d",&m);
for(int l,r;m;m--){
scanf("%d%d",&l,&r);
printf("%d\n",(ask(b,r)-ask(b,l-1))-(ask(c,r)-ask(c,l-1)));
}
}