Pagini recente » Cod sursa (job #3226037) | Cod sursa (job #3185692) | Cod sursa (job #935131) | Cod sursa (job #1764628) | Cod sursa (job #1503070)
#include<cstdio>
#define NMAX 1000007
using namespace std;
int n,m,a,b,x,p,v[NMAX];
int cautbin(int val)
{
int start=0;int step=(1<<20);
for(;step;step>>=1)
{
int index=start+step;
if(index>n)continue;
if(v[index]<=val) start=index;
}return start;
}
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(;m;m--)
{
scanf("%d %d",&a,&b);
if(a==0)
{
p=cautbin(b);
if (v[p]==b) printf("%d\n",p);
else printf("-1\n");
}
if(a==1) printf("%d\n",cautbin(b));
if(a==2) printf("%d\n",cautbin(b-1)+1);
}
}