Pagini recente » Cod sursa (job #814944) | Cod sursa (job #1700769) | Cod sursa (job #1793614) | Cod sursa (job #615038) | Cod sursa (job #211231)
Cod sursa(job #211231)
#include<stdio.h>
int n,a[100001],st,dr,mij,m;
int solve (int y,int x)
{
int aux;
st=1;
dr=n;
aux=x;
while(st<=dr)
{
mij=(st+dr)/2;
if(x==a[mij])
{
printf("%d\n",mij);
return 0;
}
if(x==a[dr])
{
printf("%d\n",dr);
return 0;
}
if(x==a[st])
{
printf("%d\n",st);
return 0;
}
if(x<a[mij])
dr=mij-1;
else
st=mij+1;
}
if(y==1 && aux==x)
solve(y,x-1);
if(y==2 && aux==x)
solve(y,x+1);
if(y==1 && aux!=x)
printf("-1\n");
if(y==2 && aux!=x)
printf("-1\n");
if(y==0)
printf("-1\n");
}
void read ()
{
int i,x,y;
scanf("%d",&n);
for(i=1;i<=n;++i)
scanf("%d",&a[i]);
scanf("%d",&m);
for(i=1;i<=m;++i)
{
scanf("%d%d",&y,&x);
solve(y,x);
}
}
int main ()
{
freopen ("cautbin.in","r",stdin);
freopen ("cautbin.out","w",stdout);
read ();
return 0;
}