int bsearch1(int array[], int start, int end, int data) {

    if(start > end)
        return -1;

    int middle = start + end ;
    middle = middle / 2 ;

    if(array[middle]<data)
        return bsearch1(array,middle+1,end,data);

    if(array[middle]>data)
        return bsearch1(array,start,middle-1,data);



    while((middle!=-1)&&(array[middle]==data)) {

        middle--;

    }

    return middle+1;
}
Exemple #2
0
int main()
{

	int u,v;
	for(u=0;u<10;u++)
		c[u]=0;

		sieve1(100005);
		sieve2(100005);
//		printf("--\n");
//			return 0;


//	for(u=0;u<10;u++)
//		printf("%d-->%d\n",u,c[u]);

	scanf("%d",&v);
	for(u=0;u<v;u++)
	{
		int a=0,b=0,d=0,i=0,j=0,sum=0;
		scanf("%d%d%d",&a,&b,&d);
//		sum=0;
//		for(i=a;i<=b;i++)
//		{
//			if(mat[i]==1 && chkd(i,d))
//			{
//				sum++;
//			}
//		}
		int b1,b2;
		b1=bsearch1(a,d);
		b2=bsearch2(b,d);
//		printf("b1==%d b2==%d\n",b1,b2);
		printf("%d\n",b2-b1+1);
	

	}
	return 0;
}
int main() {

    int n,q,query;

    scanf("%d %d",&n,&q);

    int *array = (int*) malloc (n*sizeof(int));

    int _n;

    for(_n = 0; _n<n; _n++)
        scanf("%d",&array[_n]);

    while(q>0) {

        scanf("%d",&query);
        printf("%d\n",bsearch1(array,0,n,query));

        q--;
    }

    return 0;
}