Pagini recente » Cod sursa (job #1414099) | Cod sursa (job #2180790) | Cod sursa (job #956912) | Cod sursa (job #962268) | Cod sursa (job #212725)
Cod sursa(job #212725)
#include <stdio.h>
long n,i,a[100005],m,t,x,poz;
long bsearch(long x){
long low=1,high=n+1,mid;
while (low<high){
mid=(low+high)>>1;
if (x<=a[mid])high=mid;
else low=mid+1;
}
return low;
}
int main(){
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%ld\n",&n);
for (i=1;i<=n;++i)scanf("%ld",&a[i]);
scanf("%ld",&m);
while (m--){
scanf("%ld %ld\n",&t,&x);
if (t==0){poz=bsearch(x);if (a[poz]==x) while (x==a[poz+1])poz++;else poz=-1;}
if (t==1){poz=bsearch(x);if (a[poz]==x) while (x==a[poz-1])poz--;else poz--;}
if (t==2){poz=bsearch(x);/*if (a[poz]==x) while (x==a[poz+1])poz++;*/}
printf("%ld\n",poz);
}
return 0;
}