Pagini recente » Cod sursa (job #174040) | Cod sursa (job #1947744) | Cod sursa (job #1481863) | Cod sursa (job #435620) | Cod sursa (job #455930)
Cod sursa(job #455930)
#include<stdio.h>
int sol,n,m,v[100005];
int main ()
{
int i,st,dr,tip,val,mij;
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",&tip,&val);
if(!tip)
{
sol=-1;
st=1;dr=n;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]<val)
st=mij+1;
else
if(v[mij]>val)
dr=mij-1;
else
{
sol=mij;
st=mij+1;
}
}
printf("%d\n",sol);
continue;
}
if(tip==1)
{
st=1;dr=n;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]<=val)
{
sol=mij;
st=mij+1;
}
else
dr=mij-1;
}
printf("%d\n",sol);
continue;
}
st=1;dr=n;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]<val)
st=mij+1;
else
{
sol=mij;
dr=mij-1;
}
}
printf("%d\n",sol);
}
return 0;
}