Pagini recente » fmi-no-stress-9-warmup | Cod sursa (job #498788) | Cod sursa (job #1767244) | Cod sursa (job #712253) | Cod sursa (job #3296350)
#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';
}
}
}