Pagini recente » Cod sursa (job #286831) | Cod sursa (job #2562854) | Cod sursa (job #354471) | Cod sursa (job #2601693) | Cod sursa (job #1116775)
#include<vector>
#include<algorithm>
#include<cstdio>
using namespace std;
int v[100001];
int x,i,n;
int main()
{
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;++i)
{
scanf("%d",&x);
v[i]=x;
}
int k,cst,x;
scanf("%d",&k);
for (i=1;i<=k;++i)
{
scanf("%d%d",&cst,&x);
if (cst==0)
{
int *p=upper_bound(v+1,v+n+1,x);
if (v[p-v-1]==x) printf("%d\n",p-v-1);
else printf("-1\n");
}
else if (cst==1)
{
int *p=upper_bound(v+1,v+n+1,x);
if (v[n]<=x) printf("%d\n",n);
else printf("%d\n",p-v-1);
}
else
{
int *p=lower_bound(v+1,v+n+1,x);
if (v[1]>=x) printf("1\n");
else printf("%d\n",p-v);
}
}
return 0;
}