Pagini recente » Cod sursa (job #922027) | Cod sursa (job #1321813) | Cod sursa (job #2559209) | Cod sursa (job #2173662) | Cod sursa (job #513706)
Cod sursa(job #513706)
#include <stdio.h>
#define dim 100010
int n,v[dim];
int cbin0(int nr)
{
int ret=-2,s=0,d=n-1;
while(s<=d)
{
int m=(s+d)>>1;
if(v[m]==nr)ret=m;
if(v[m]<=nr)s=m+1;
else d=m-1;
}
return ret+1;
}
int cbin1(int nr)
{
int ret=-2,s=0,d=n-1;
while(s<=d)
{
int m=(s+d)>>1;
if(v[m]<=nr)ret=m,s=m+1;
else d=m-1;
}
return ret+1;
}
int cbin2(int nr)
{
int ret=-2,s=0,d=n-1;
while(s<=d)
{
int m=(s+d)>>1;
if(v[m]<nr)s=m+1;
else ret=m,d=m-1;
}
return ret+1;
}
int main()
{
int teste,tip,valoare,i;
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&v[i]);
scanf("%d",&teste);
for(i=1;i<=teste;i++)
scanf("%d %d",&tip,&valoare),
printf("%d\n",(tip?tip-1?cbin2(valoare):cbin1(valoare):cbin0(valoare)));
return 0;
}