Pagini recente » Cod sursa (job #2260211) | Cod sursa (job #1787036) | Cod sursa (job #1883943) | Cod sursa (job #1472736) | Cod sursa (job #1809769)
#include<cstdio>
using namespace std;
int n,tip,m;
int x,v[100005],mid;
int cautbin(int x)
{
int st=1,dr=n;
while(st<=dr)
{
mid=(st+dr)/2;
if(v[mid]<=x) st=mid+1;
else dr=mid-1;
}
return dr;
}
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",&tip,&x);
if(tip==0)
{if(v[cautbin(x)]==x) printf("%d \n",cautbin(x));
else printf("-1 \n");}
else if(tip==1) printf("%d \n",cautbin(x));
else printf("%d \n",(cautbin(x-1)+1));
}
}