Pagini recente » Cod sursa (job #2584419) | Cod sursa (job #2472606) | Cod sursa (job #540615) | Cod sursa (job #708388) | Cod sursa (job #539839)
Cod sursa(job #539839)
#include<fstream.h>
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
long n,m;
int a[100000],b[100000][2];
void cit()
{
int i;
fin>>n;
for(i=1;i<=n;i++)
fin>>a[i];//citim vectorul
}
int cautare(int li,int ls,int x)
{
int j,i,k;
i=li;
j=ls;
while(i<=j)
{
k=(i+j)/2;
if(a[k]==x)
return k;
else
if(a[k]>x)
j=k-1;
else
i=k+1;
}
return k;
}
int main()
{
int k,i,x,y;
cit();
//k=cautare(1,n,3);
fin>>m;
for(i=1;i<=m;i++)
{
fin>>x>>y;
k=cautare(1,n,y);
if(x==0)
{while(a[k]==y)k++;
k--;
if(a[k]==y)
fout<<k<<'\n';
else
fout<<"-1"<<'\n';
}
if(x==1)
{while(a[k]==y)k++;
//k--;
if(a[k]<=y)
fout<<k<<'\n';
else
fout<<k-1<<'\n';
}
if(x==2)
{while(a[k]==y)k--;
if(a[k]>=y)
fout<<k<<'\n';
else
fout<<k+1<<'\n';
}
//fout<<k<<'\n';
}
return 0;
}