#include <stdio.h>
#include <stdlib.h>
int compare(const void *a,const void *b) {
    return *(int *)a-*(int *)b;
}
int num[500001];

int find_l(int target,int start, int end) {
    while(start<=end) {
        int mid=(start+end)/2;
        if(num[mid]>=target) end=mid-1;
        else start=mid+1;
    }
    return start;
}



int find_r(int target,int start, int end) {
    while(start<=end) {
        int mid=(start+end)/2;
        if(num[mid]<=target) start=mid+1;
        else end=mid-1;
    }
    return start;
}

int main() {
    int n;
    scanf("%d",&n);
    for(int i=0; i<n; i++) {
        scanf("%d",&num[i]);
    }
    qsort(num,n,sizeof(int),compare);
    int m;
    scanf("%d",&m);
    for(int i=0; i<m; i++) {
        int target;
        scanf("%d",&target);
        int l,r;
        l=find_l(target,0,n-1);
        r=find_r(target,0,n-1);
        if(num[l]==target) {
            printf("%d ",r-l);
        } else printf("0 ");
    }
    return 0;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: