Pagini recente » Cod sursa (job #2670293) | Cod sursa (job #1847893) | Cod sursa (job #2533497) | Cod sursa (job #2727146) | Cod sursa (job #248473)
Cod sursa(job #248473)
#include<stdio.h>
int n,i,x,in,t;
int v[100010];
int caut(int x)
{
int st = 0, dr = n - 1, m;
while(st!=dr)
{
m = (st+dr)/2;
if(x <= v[m])
dr = m;
else st = m+1;
}
if( x == v[st])
return st;
return -1;
}
int main()
{
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",&t);
for(i=1;i<=t;i++)
{
scanf("%d",&in);
scanf("%d",&x);
if(in == 0)
printf("%d\n",caut(x));
if(in == 1)
{
while(caut(x) == -1)
x--;
printf("%d\n",caut(x));
}
if(in == 2)
{
while(caut(x) == -1)
x++;
printf("%d\n",caut(x));
}
}
return 0;
}