Pagini recente » Cod sursa (job #2290347) | Cod sursa (job #2222791) | Cod sursa (job #1524139) | Cod sursa (job #106949) | Cod sursa (job #1247120)
#include <cstdio>
using namespace std;
#define MAX 100000
int v[MAX+1],n;
int cb0(int x)
{
int i=0,
pas=2<<17;
while(pas!=0)
{
if(i+pas<=n)
if(v[i+pas]<=x)
i+=pas;
pas>>=1;
}
if(v[i]==x)
return i;
else return -1;
}
int cb1(int x)
{
int i=0,
pas=2<<17;
while(pas!=0)
{
if(i+pas<=n)
if(v[i+pas]<=x)
i+=pas;
pas>>=1;
}
return i;
}
int cb2(int x)
{
int i=0,
pas=2<<17;
while(pas!=0)
{
if(i+pas<=n)
if(v[i+pas]<x)
i+=pas;
pas>>=1;
}
return i+1;
}
int main()
{
FILE *fin,*fout;
fin=fopen("cautbin.in","r");
fout=fopen("cautbin.out","w");
int i,m,q,x;
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++)
fscanf(fin,"%d",&v[i]);
fscanf(fin,"%d",&m);
for(i=0;i<m;i++)
{
fscanf(fin,"%d%d",&q,&x);
if(q==0)
fprintf(fout,"%d\n",cb0(x));
if(q==1)
fprintf(fout,"%d\n",cb1(x));
if(q==2)
fprintf(fout,"%d\n",cb2(x));
}
return 0;
}