Pagini recente » Cod sursa (job #2056695) | Cod sursa (job #1375614) | Cod sursa (job #2355680) | Cod sursa (job #1102671) | Cod sursa (job #408673)
Cod sursa(job #408673)
#include<stdio.h>
int n,m,pas,k,l;
int v[100000];
int caut(int x)
{
int i; pas=1<<16;
for(i=0;pas;pas>>=1)
{
if(i+pas<=n && v[i+pas]<=x)
i+=pas;
}
if(v[i]==x)
return i;
return -1;
}
int caut2(int x)
{
int i ;pas=1<<16;
for( i=0;pas;pas>>=1)
{
if(i+pas<=n && v[i+pas]<=x)
i+=pas;
}
return i;
}
int caut3(int x)
{
int i; pas=1<<16;
for(int i=0;pas;pas>>=1)
{
if(i+pas<=n && v[i+pas]<x)
i+=pas;
}
return i+1;
}
int main()
{
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;++i)
scanf("%d",&v[i]);
scanf("%d",&m);
for(int i=1;i<=m;i++)
{
scanf("%d%d",&k,&l);
if(k==0)
printf("%d\n",caut(l));
if(k==1)
printf("%d\n",caut2(l));
if(k==2)
printf("%d\n",caut3(l));
}
return 0;
}