Pagini recente » Cod sursa (job #2769768) | Cod sursa (job #503520) | Cod sursa (job #1626126) | Cod sursa (job #1439948) | Cod sursa (job #2824593)
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int v[100005];
int cautare1(int nr,int p)
{
int m=0,l,r;
l=0;
r=p;
while(l<r)
{
m=(l+r)/2;
if (v[m]>nr)
r=m;
else
l=m+1;
}
if(v[r-1]==nr)
return r;
return -1;
}
int cautare2(int nr,int p)
{
int m=0,l,r;
l=0;
r=p;
while(l<r && v)
{
m=(l+r)/2;
if (v[m]>nr)
r=m;
else
l=m+1;
}
return r;
}
int cautare3(int nr,int p)
{
int m=0,l,r;
l=0;
r=p;
while(l<r)
{
m=(l+r)/2;
if (v[m]<nr)
l=m+1;
else
r=m;
}
return l+1;
}
int main()
{
int n,m,i,a,b;
fin>>n;
for(i=0; i<n; i++)
fin>>v[i];
fin>>m;
for(i=0; i<m; i++)
{
fin>>a>>b;
if(a==0)
fout<<cautare1(b,n)<<'\n';
else if(a==1)
fout<<cautare2(b,n)<<'\n';
else
fout<<cautare3(b,n)<<'\n';
}
return 0;
}