Cod sursa(job #805120)

Utilizator avaspataruAva Spataru avaspataru Data 30 octombrie 2012 21:48:36
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include<stdio.h>
int i,j,k,v[100001],n,c,pas,x;
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",&k);
for(j=1;j<=k;j++)
    {
    scanf("%d%d",&c,&x);
    if(c==0)
        {i=0;pas=1<<16;
        while(pas!=0)
            {if(i+pas<=n&&v[i+pas]<=x)
                i+=pas;
            pas/=2;
            }
        if(v[i]==x)
            printf("%d\n",i);
        else
            printf("-1\n");
        }
    else
    if(c==1)
       {i=0;pas=1<<16;
        while(pas!=0)
            {if(i+pas<=n&&v[i+pas]<=x)
                i+=pas;
            pas/=2;
            }
        printf("%d\n",i);
        }
    else
    if(c==2)
       {i=0;pas=1<<16;
        while(pas!=0)
            {if(i+pas<=n&&v[i+pas]<x)
                i+=pas;
            pas/=2;
            }
        printf("%d\n",i+1);
        }
    }
return 0;
}