Pagini recente » Cod sursa (job #1030137) | Cod sursa (job #1742960) | Cod sursa (job #3270316) | Cod sursa (job #2445416) | Cod sursa (job #743786)
Cod sursa(job #743786)
#include<cstdio>
int N, A[10000];
int binary_search1(int val)
{
int i, step;
for (step = 1; step < N; step <<= 1);
for (i = 0; step; step >>= 1)
if (i + step <= N && A[i + step] <= val)
i += step;
return i;
}
int binary_search2(int val)
{
int i, step;
for (step = 1; step < N; step <<= 1);
for (i = 0; step; step >>= 1)
if (i + step <= N && A[i + step] < val)
i += step;
return i;
}
int main()
{
freopen("cautbin.in","r",stdin);freopen("cautbin.out","w",stdout);
int i,t,v,a;
scanf("%d",&N);
for(i=1;i<=N;i++)
scanf("%d",&A[i]);
for(scanf("%d",&t);t;--t)
{
scanf("%d%d",&v,&a);
if(v==2)
printf("%d",binary_search2(a));
else
printf("%d",binary_search1(a)+1);
printf("\n");
}
}