Pagini recente » Cod sursa (job #2512736) | Cod sursa (job #3123355) | Cod sursa (job #2148017) | Cod sursa (job #3212000) | Cod sursa (job #869662)
Cod sursa(job #869662)
#include<stdio.h>
int n,x,v[10000],m,k,tip;
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",&k);
for(int j=1;j<=k;j++)
{
scanf("%d%d",&tip,&x);
int st=0, dr=n+1;
if(tip==0)
{
while(st+1<dr)
{
m=(st+dr)/2;
if(x<v[m])
dr=m;
else
st=m;
}
if(v[st]==x)
printf("%d\n",st);
else printf("-1\n");
}
else
if(tip==1)
{
while(st+1<dr)
{
m=(st+dr)/2;
if(x>=v[m])
st=m;
else
dr=m;
}
printf("%d\n",st);
}
else
if(tip==2)
{
while(st+1<dr)
{
m=(st+dr)/2;
if(x<=v[m])
dr=m;
else
st=m;
}
printf("%d\n",dr);
}
}
return 0;
}