Pagini recente » Cod sursa (job #62864) | Cod sursa (job #2440976) | Cod sursa (job #1803684) | Cod sursa (job #1544494) | Cod sursa (job #1082079)
#include <cstdio>
const int Q=100000;
int n,v[Q+1];
int operand0(int x)
{
int pas=1<<17;
int i=0;
while(pas)
{
pas/=2;
if(v[i+pas]==0)
continue;
if(v[i+pas]<=x)
{
i+=pas;
}
}
if(v[i]==x)
return i;
return -1;
}
int operand2(int x)
{
int pas=1<<17;
int i=0;
while(pas)
{
pas/=2;
if(v[i+pas]==0)
continue;
if(v[i+pas]<x)
{
i+=pas;
}
}
//if(v[i+1]==x)
return i+1;
return i;
}
int operand1(int x)
{
int pas=1<<17;
int i=0;
while(pas)
{
pas/=2;
if(v[i+pas]==0)
continue;
if(v[i+pas]<=x)
{
i+=pas;
}
}
return i;
}
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]);
int t,op,x;
scanf("%d",&t);
for(int i=1; i<=t; i++)
{
scanf("%d%d",&op,&x);
if(op==0)
printf("%d\n",operand0(x));
if(op==1)
printf("%d\n",operand1(x));
if(op==2)
printf("%d\n",operand2(x));
}
return 0;
}