Pagini recente » Cod sursa (job #992160) | Cod sursa (job #1958432) | Cod sursa (job #2468505) | Cod sursa (job #2701357) | Cod sursa (job #1881417)
#include<bits/stdc++.h>
using namespace std;
int lo,hi,mid,a[101001],x,n,t,y;
int cautbin0(){
lo=1;
hi=n;
while(lo<=hi){
mid=lo+(hi-lo)/2;
if(a[mid]<=x) lo=mid+1;
else hi=mid-1;
}
if(a[hi]==x) return hi;
else return -1;
}
int cautbin1_versiunea_lui_SuperGheoghe(){
lo=1;
hi=n;
while(lo<=hi){
mid=lo+(hi-lo)/2;
if(a[mid]<=x) lo=mid+1;
else hi=mid-1;
}
return hi;
}
int cautbin2(){
lo=1;
hi=n;
while(lo<=hi){
mid=lo+(hi-lo)/2;
if(a[mid]>=x) hi=mid-1;
else lo=mid+1;
}
return lo;
}
int main(){
ifstream cin("cautbin.in");
ofstream cout("cautbin.out");
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cin>>t;
for(int i=1;i<=t;i++){
cin>>y>>x;
if(y==0) cout<<cautbin0()<<"\n";
if(y==1) cout<<cautbin1_versiunea_lui_SuperGheoghe()<<"\n";
if(y==2) cout<<cautbin2()<<"\n";
}
return 0;
}