萌新求助,不知道错在了哪里
查看原帖
萌新求助,不知道错在了哪里
246518
MickeyMouse楼主2020/11/28 10:22

萌新求问错在了哪里?

#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)));
    }

}
2020/11/28 10:22
加载中...