Pagini recente » Cod sursa (job #3192925) | Cod sursa (job #3291892) | Cod sursa (job #2880265) | Cod sursa (job #764673) | Cod sursa (job #2155473)
#include <iostream>
#include <cstdio>
using namespace std;
int const nm=100007;
unsigned int v[nm];
int main()
{
int n,q,i,m,s,t,c,nr,poz;
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",&q);
for(i=1;i<=q;++i)
{
scanf("%d %d",&c,&nr);
if(!c)
{
s=1,t=n;poz=-1;
while(s<=t)
{
m=(s+t)/2;
if(v[m]==nr)
poz=m,s=m+1;
if(v[m]>nr)
t=m-1;
if(v[m]<nr)
s=m+1;
}
printf("%d\n",poz);
}
if(c==1)
{
s=1,t=n;
while(s<=t)
{
m=(s+t)/2;
if(v[m]<=nr)
poz=m,s=m+1;
if(v[m]>nr)
t=m-1;
}
printf("%d\n",poz);
}
if(c==2)
{
s=1,t=n;
while(s<=t)
{
m=(s+t)/2;
if(v[m]>=nr)
poz=m,t=m-1;
if(v[m]<nr)
s=m+1;
}
printf("%d\n",poz);
}
}
return 0;
}