Pagini recente » Cod sursa (job #2650387) | Cod sursa (job #2232955) | Borderou de evaluare (job #1567161) | Cod sursa (job #1956264) | Cod sursa (job #1880010)
#include <cstdio>
#include <algorithm>
using namespace std;
int v[100002];
int n,m,p,x;
int main()
{
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&v[i]);
}
scanf("%d",&m);
for(int i=1;i<=m;i++)
{
scanf("%d %d",&p,&x);
if(p==0)
{
int q=upper_bound(v+1,v+n+1,x)-v-1;
if(v[q]==x&&q<=n&&q>=1)
printf("%d\n",q);
else
printf("-1\n");
}
else{
if(p==1)
{
int q=lower_bound(v+1,v+n+1,x+1)-v-1;
printf("%d\n",q);
}else{
if(p==2)
{
int q=upper_bound(v+1,v+n+1,x-1)-v;
printf("%d\n",q);
}}
}
}
return 0;
}