Pagini recente » Cod sursa (job #20457) | Cod sursa (job #3293867) | Cod sursa (job #2268390) | Cod sursa (job #127441) | Cod sursa (job #1611388)
#include<cstdio>
int n,m,v[100001],i,j,k,x,y;
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",&x,&y);
int l1,l2,mid,o=-1;
if(x==0)
{
l1=1;
l2=n;
while(l1<=l2)
{
mid=(l1+l2)/2;
if(v[mid]==y)
{
o=mid;
l1=mid+1;
}
else
if(v[mid]>y)
l2=mid-1;
else
l1=mid+1;
}
printf("%d\n",o);
}
if(x==1)
{
l1=1;
l2=n;
while(l1<=l2)
{
mid=(l1+l2)/2;
if(v[mid]<=y)
{
o=mid;
l1=mid+1;
}
else
l2=mid-1;
}
printf("%d\n",o);
}
if(x==2)
{
l1=1;
l2=n;
while(l1<=l2)
{
mid=(l1+l2)/2;
if(v[mid]>=y)
{
o=mid;
l2=mid-1;
}
else
l1=mid+1;
}
printf("%d\n",o);
}
}
return 0;
}