Pagini recente » Cod sursa (job #883302) | Cod sursa (job #2021111) | Cod sursa (job #1565950) | Cod sursa (job #777944) | Cod sursa (job #2943886)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
long long int st,dr,v[100001],mij,m,n,i,intreb,x,z;
int main()
{fin>>n;
for(i=1;i<=n;i++) fin>>v[i];
fin>>m;
for(z=1;z<=m;z++)
{
fin>>intreb>>x;
if(intreb==0)
{
if(x<v[1]||x>v[n]) fout<<-1<<endl;
else
{
st=1,dr=n;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]<=x) st=mij+1;
else dr=mij-1;
}
if(v[dr]==x) fout<<dr<<endl;
else fout<<-1<<endl;
}
}
else if(intreb==1)
{
st=1,dr=n;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]<=x) st=mij+1;
else dr=mij-1;
}
fout<<dr<<endl;
}
else
{
{
st=1,dr=n;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]<x) st=mij+1;
else dr=mij-1;
}
fout<<st<<endl;
}
}
}
return 0;
}