Pagini recente » Cod sursa (job #625026) | Cod sursa (job #2119124) | Cod sursa (job #239061)
Cod sursa(job #239061)
#include<stdio.h>
int n,m,v[100000],x,intr,t,p,u;
void vector()
{
for(int i=0;i<n;++i)
scanf("%d",&v[i]);
}
void intrebari()
{
int ok=0;
scanf("%d",&m);
for(int i=0;i<m;++i)
{
scanf("%d%d",&intr,&x);
if(intr==0)
{
if(x>=v[0] && x<=v[n-1])
{
p=0;
u=n-1;
ok=0;
do
{
t=(p+u)/2;
if(x==v[t])
{
ok=1;
break;
}
else if(x<v[t])
u=t-1;
else p=t+1;
}
while(!(ok || p>u));
if(ok==1)
printf("%d\n",t+1);
}
}
if(intr==1)
{
if(x>=v[0] && x<=v[n-1])
{
p=0;
u=n-1;
ok=0;
do
{
t=(p+u)/2;
if(x==v[t])
{
ok=1;
break;
}
else if(x<v[t])
u=t-1;
else p=t+1;
}
while(!(ok|| p>u));
printf("%d\n",t);
}
}
else if(intr==2)
{
if(x>=v[0] && x<=v[n-1])
{
p=0;
u=n-1;
ok=0;
do
{
t=(p+u)/2;
if(x==v[t])
{
ok=1;
break;
}
else if(x<v[t])
u=t-1;
else p=t+1;
}
while(!(ok || p>u));
printf("%d\n",t+1);
}
}
}
}
int main()
{
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d",&n);
vector();
intrebari();
return 0;
}