Pagini recente » Cod sursa (job #96041) | Cod sursa (job #716367) | Cod sursa (job #1773692) | Cod sursa (job #656632) | Cod sursa (job #803334)
Cod sursa(job #803334)
#include<stdio.h>
#define Nmax 100001
int N, *V, putere;
int main() {
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
int i, tip, poz, val, T;
scanf("%d",&N);
V = new int[N+1];
for(i=1; i<=N; i++)
scanf("%d",&V[i]);
scanf("%d",&T);
putere = 1;
while(putere <= N)
putere<<=1;
while(T--) {
scanf("%d %d",&tip,&val);
if(tip < 2) {
for(i = putere, poz = 0; i; i>>=1)
if(poz+i<=N && V[poz+i]<=val)
poz+=i;
if(tip == 0 && V[poz] !=val)
printf("-1\n");
else
printf("%d\n",poz);
}
else {
for(i = putere, poz = N; i; i>>=1)
if(poz-i>=1 && V[poz-i]>=val)
poz-=i;
printf("%d\n",poz);
}
}
return 0;
}