Pagini recente » Cod sursa (job #1635097) | Cod sursa (job #2112613) | Cod sursa (job #2151300) | Cod sursa (job #928292) | Cod sursa (job #1671733)
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int v[100001],n,m,a,b,i;
int cb0(int b,int n,int v[])
{
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[])
{
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[])
{
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;
}