Cod sursa(job #245084)

Utilizator ktalyn93Catalin ktalyn93 Data 16 ianuarie 2009 18:59:11
Problema Cautare binara Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
#include <stdio.h>
int n,i,a[100],x,m,p,y;
int cautbin(int m1,int m2)
{
    int mid;
    while(m1<m2)
    {
	mid=(m1+m2)/2;
	if(x>a[mid])
	 m1=mid+1;
	 else
	m2=mid;
	
    }
    y=m1;
    if(x==a[m1])
     return m1;
     else
     return -1;
 }
  
               
int main()
{
    freopen("cautbin.in","r",stdin);
    freopen("cautbin.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=n;i++) scanf("%d",&a[i]);
    scanf("%d",&m);
    for(i=1;i<=m;i++)
    {
		   scanf("%d %d",&p,&x);
		   if(p==0)		    
			printf("%d\n",cautbin(1,n));
           if(p==1)
                   if(cautbin(1,n)==-1)
                                       printf("%d\n",y-1);
                                       else printf("%d\n",y);
           if(p==2)
                   if(cautbin(1,n)==-1)
                                       printf("%d\n",y);
                   else
                                       printf("%d\n",y);
                   
   }    

    return 0;
}