Cod sursa(job #284376)

Utilizator ktalyn93Catalin ktalyn93 Data 21 martie 2009 17:49:08
Problema Cautare binara Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.13 kb
#include <stdio.h>
int n,m,v[100001],i,j,p,x,o;
int cautbin(int s,int d)
{ 
  int m;
  while(s<d)
  {
   m=(s+d)/2;
   if(x<v[m])
    d=m;
   else
   if(x>v[m])
   s=m+1;
   else
   if(x==v[m])
    return m;
   }
   p=d;
   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",&v[i]);
    scanf("%d",&m);
    for(i=1;i<=m;i++)
    {
                     scanf("%d %d",&o,&x);
                     if(o==0)
                      printf("%d\n",cautbin(1,n));
                      else
                     if(o==1)
                      {
                         if(cautbin(1,n)==-1)
                         printf("%d\n",p-1);
                         else
                         printf("%d",cautbin(1,n));
                     }else
                     {
                     if(cautbin(1,n)==-1)
                         printf("%d\n",p);
                         else
                         printf("%d",cautbin(1,n));
                     }
    }
    return 0;
}