Pagini recente » Cod sursa (job #1738654) | Cod sursa (job #2844746) | Cod sursa (job #2194025) | Autentificare | 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;
}