Pagini recente » Cod sursa (job #90798) | Cod sursa (job #1665743) | Cod sursa (job #497968) | Cod sursa (job #413740) | Cod sursa (job #1157095)
#include<cstdio>
int mij,st,dr,m,v[1001],p,nr,n,i,ok;
int main()
{
freopen("cautbin.in","rt",stdin);
freopen("cautbin.out","wt",stdout);
scanf("%ld",&n);
for(i=1; i<=n; i++)
{
scanf("%ld",&v[i]);
}
scanf("%ld",&m);
for(i=1; i<=m; i++)
{
scanf("%ld%ld",&p,&nr);
ok=0;
st=1;
dr=n;
if(p==0||p==1)
{
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]>nr)
{
dr=mij-1;
continue;
}
if(v[mij]<=nr)
{
ok=mij;
st=mij+1;
continue;
}
}
}
if(p==2)
{
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]>=nr)
{
dr=mij-1;
ok=mij;
continue;
}
if(v[mij]<nr)
{
st=mij+1;
continue;
}
}
}
if(p==0&&v[ok]!=nr)
printf("-1\n");
else
printf("%ld\n",ok);
}
}