Pagini recente » Cod sursa (job #818126) | Cod sursa (job #608790) | Cod sursa (job #428472) | Cod sursa (job #347522) | Cod sursa (job #1671734)
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
long long int v[100001],n,m,a,b,i;
int cb0(int b,int n,int v[])
{
long long int st=1,dr=n,mij;
while (st <= dr)
{
mij = (st + dr) / 2;
if (v[mij] <= b)
st = mij + 1;
else
dr = mij - 1;
}
mij = (st + dr) / 2;
if(v[m]>b)
mij--;
if (v[mij]==b)
return mij;
return -1;
}
int cb1(int b,int n,int v[])
{
long long int st=1,dr=n,mij;
while (st <= dr)
{
mij = (st + dr) / 2;
if (v[mij] <= b)
st = mij + 1;
else
dr = mij-1;
}
mij = (st + dr) / 2;
if(v[mij]>b)
mij--;
return mij;
}
int cb2(int b,int n,int v[])
{
long long int st=1,dr=n,mij;
while (st <= dr)
{
mij = (st + dr) / 2;
if (v[mij] < b)
st = mij + 1;
else
dr = mij-1;
}
mij = (st + dr) / 2;
if(v[mij]<b)
mij++;
return mij;
}
int main()
{
fin>>n;
for(i=1; i<=n; i++)
fin>>v[i];
fin>>m;
for(i=1; i<=m; i++)
{
fin>>a>>b;
if(a==0)
fout<<cb0(b,n,v)<<'\n';
else if(a==1)
fout<<cb1(b,n,v)<<'\n';
else
fout<<cb2(b,n,v)<<'\n';
}
return 0;
}