Pagini recente » Cod sursa (job #510894) | Cod sursa (job #137376) | Cod sursa (job #367247) | Cod sursa (job #328468) | Cod sursa (job #2664898)
#include<iostream>
long long int v[100001];
using namespace std;
int main(){
long long int n,m,x,y,t=1;
cin>>n;
while(t*2<=n){
t*=2;
}
for(long long int i=1;i<=n;i++){
cin>>v[i];
}
cin>>m;
for(long long int i=1;i<=m;i++){
cin>>x>>y;
if(x==0){
long long int r=0;
for(long long int i=t;i>0;i/=2){
if(v[r+i]<=y && r+i<=n){
r+=i;
}
}
if(v[r]==y){
cout<<r<<'\n';
}else{
cout<<"-1"<<'\n';
}
}
if(x==1){
long long int r=0;
for(long long int i=t;i>0;i/=2){
if(v[r+i]<=y && r+i<=n){
r+=i;
}
}
cout<<r<<'\n';
}
if(x==2){
long long int r=n+1;
for(long long int i=t;i>0;i/=2){
if(v[r-i]>=y && r-i>0){
r-=i;
}
}
cout<<r<<'\n';
}
}
}