Pagini recente » Cod sursa (job #2152370) | Cod sursa (job #517314) | Cod sursa (job #1921287) | Cod sursa (job #312072) | Cod sursa (job #1671756)
#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 mij,st=1,dr=n;
while (st <= dr) {
mij = (st + dr) / 2;
if (v[mij] <= b)
st=mij+1;
else if(v[mij]>b)
dr=mij-1;
}
mij = (st + dr) / 2;
if (v[mij] > b) mij --;
if (v[mij] == b)
return mij;
return -1;
}
int cb1 (int b, int n, int v[]) {
int
mij, st=1,dr=n;
while (st < dr){
mij = (st + dr) / 2;
if (v[
mij] <= b)
st=mij+1;
else if(v[mij]>b)
dr=mij;
}
mij = (st + dr) / 2;
if (v[mij] > b)
mij--;
return mij;
}
int cb2 (int b, int n, int v[]) {
int mij,st=1,dr=n;
while (st < dr) {
mij=(st+dr) / 2;
if (v[mij] < b)
st=mij+1;
else if(v[mij]>=b)
dr=mij;
}
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;
}