Pagini recente » Cod sursa (job #1164201) | Cod sursa (job #1835588) | Cod sursa (job #2164045) | Cod sursa (job #3038980) | Cod sursa (job #2159448)
#include <fstream>
using namespace std;
ifstream cin("cautbin.in");
ofstream cout("cautbin.out");
int v[100001];
int n;
int i1(int nr,int n){
int i=1,s=n,gasit=-1;
while(i<=s)
{
int mid=(i+s)/2;
if(v[mid]==nr)
gasit=mid,i=mid+1;
if(v[mid]<nr)
i=mid+1;
if(v[mid]>nr)
s=mid-1;
}
return gasit;
}
int i2(int nr,int n){
int i=1,s=n,gasit=-1;
while(i<=s)
{
int mid=(i+s)/2;
if(v[mid]<=nr)
gasit=mid,i=mid+1;
if(v[mid]>nr)
s=mid-1;
}
return gasit;
}
int i3(int nr,int n){
int i=1,s=n,gasit;
while(i<=s)
{
int mid=(i+s)/2;
if(v[mid]>=nr)
gasit=mid,s=mid-1;
if(v[mid]<nr)
i=mid+1;
}
return gasit;
}
int main()
{
int i,q,nr,s;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
cin>>s;
for(i=1;i<=s;i++){
cin>>q>>nr;
if(q==0)
cout<<i1(nr,n);
if(q==1)
cout<<i2(nr,n);
if(q==2)
cout<<i3(nr,n);
}
return 0;
}