Pagini recente » Cod sursa (job #574973) | Cod sursa (job #1386606) | Cod sursa (job #1576603) | Cod sursa (job #1434509) | Cod sursa (job #2545367)
#include<stdio.h>
int n,m;
int arr[100001];
int bs(int v){
/*arr[l-1]<=v;arr[r]>v*/
int l=0,r=n;
while(l<r){
int mid = (l+r)/2;
if(arr[mid]>v) r=mid;
else l=mid+1;
}
return l-1; // arr[l-1]<=v;arr[l]>v
}
int main(){
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",&arr[i]);
scanf("%d",&m);
while(m--){
int ch,val;
scanf("%d%d",&ch,&val);
int idx = bs(val);
if(ch==0) {
if(arr[idx]==val) printf("%d\n",idx+1);
else printf("-1\n");
}
else if (ch==1){
printf("%d\n",idx+1);
}
else printf("%d\n",bs(val-1)+2);
}
}