Pagini recente » Cod sursa (job #2916505) | Cod sursa (job #2708228) | Cod sursa (job #2095830) | Cod sursa (job #2774075) | Cod sursa (job #579202)
Cod sursa(job #579202)
#include <stdio.h>
#include <algorithm>
using namespace std;
int n;
int a[100100];
int m;
void citire()
{
scanf("%d",&n);
for(int i=0;i<n;++i)
scanf("%d",&a[i]);
scanf("%d",&m);
}
int main()
{
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
citire();
while(m--)
{
int x;
int y;
scanf("%d %d",&x,&y);
int z;
switch(x)
{
case 0:
z=upper_bound(a,a+n,y)-a-1;
if(z>=0 && z<n &&a[z]==y)
printf("%d\n",z+1);
else
printf("-1\n");
break;
case 1:
z=lower_bound(a,a+n,y+1)-a-1;
printf("%d\n",z+1);
break;
default:
z=upper_bound(a,a+n,y-1)-a;
printf("%d\n",z+1);
break;
}
}
return 0;
}