Pagini recente » Cod sursa (job #2132444) | Cod sursa (job #221413) | Cod sursa (job #1412920) | Cod sursa (job #1836472) | Cod sursa (job #3187869)
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream gout("cautbin.out");
int main()
{
long long n,m,a,b,r,k=0;
fin>>n;
int v[n];
for(int i=0; i<n; ++i) fin>>v[i];
fin>>m;
int f[m];
for(int i=0; i<m; ++i){
fin>>a>>b;
if(a==0){
r=upper_bound(v,n+v,b)-v;
--r;
if(r>=0 && v[r]==r){
f[k++]=r+1;
}
else f[k++]=-1;
}
else if(a==1){
r=upper_bound(v,v+n,b)-v;
--r;
f[k++]=r+1;
}
else if(a==2){
r=lower_bound(v,v+n,b)-v;
if(v[r]==b) f[k++]=r+1;
else f[k++]=r+1+1;
}
}
for(int i=0; i<k; ++i) gout<<f[i]<<"\n";
return 0;
}