Pagini recente » Cod sursa (job #2796393) | Cod sursa (job #214299) | Cod sursa (job #634231) | Cod sursa (job #2299593) | Cod sursa (job #2159451)
#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)<<'\n';
if(q==1)
cout<<i2(nr,n)<<'\n';
if(q==2)
cout<<i3(nr,n)<<'\n';
}
return 0;
}