Pagini recente » Cod sursa (job #2543484) | Cod sursa (job #2207885) | Cod sursa (job #1472650) | Cod sursa (job #1020023) | Cod sursa (job #3296349)
#include <bits/stdc++.h>
#define pb push_back
//#define int long long
using namespace std;
const int N=1e5+5;
int v[N];
signed main()
{
ifstream cin("cautbin.in");ofstream cout("cautbin.out");
int n;
cin>>n;
for(int i=1;i<=n;++i) cin>>v[i];
int q;cin>>q;
while(q--)
{
int op;cin>>op;
if(op==0)
{
int x;cin>>x;
int l=1,r=n,ans=0;
while(l<=r)
{
int mij=(l+r)/2;
if(v[mij]<=x) ans=mij,l=mij+1;
else r=mij-1;
}
if(ans==0||v[ans]!=x) cout<<"-1\n";
else cout<<ans<<'\n';
}
else if(op==1)
{
int x;cin>>x;
int l=1,r=n,ans=0;
while(l<=r)
{
int mij=(l+r)/2;
if(v[mij]<=x) ans=mij,l=mij+1;
else r=mij-1;
}
cout<<ans<<'\n';
}
else
{
int x;cin>>x;
int l=1,r=n,ans=0;
while(l<=r)
{
int mij=(l+r)/2;
if(v[mij]>=x) ans=mij,r=mij-1;
else l=mij+1;
}
cout<<ans<<'\n';
}
}
}