Pagini recente » Cod sursa (job #2560948) | Cod sursa (job #157353) | Cod sursa (job #118600) | Cod sursa (job #1875196) | Cod sursa (job #1264150)
#include <fstream>
using namespace std;
int main()
{
ifstream in("cautbin.in");
ofstream out("cautbin.out");
long mij,primul,ultimul,intre,sol,i,n,v[100001],x,y;
in>>n;
for(i=1;i<=n;i++) in>>v[i];
primul=1;
ultimul=n;
in>>intre;
for(i=1;i<=intre;i++)
{
in>>x>>y;
primul=1;ultimul=n;sol=-1;
if(x==0)
{
while(primul<=ultimul)
{
mij=(primul+ultimul)/2;
if(y<v[mij]) ultimul=mij-1;
if(y>v[mij]) primul=mij+1;
if(y==v[mij]) {sol=mij;primul=mij+1;}
}
out<<sol<<'\n';
}
if(x==1)
{
sol=-1;
while(primul<=ultimul)
{
mij=(primul+ultimul)/2;
if(v[mij]<=y) {sol=mij;primul=mij+1;}
else ultimul=mij-1;
}
out<<sol<<'\n';
}
if(x==2)
{
sol=-1;
while(primul<=ultimul)
{
mij=(primul+ultimul)/2;
if(v[mij]>=y) {sol=mij;ultimul=mij-1;}
else primul=mij+1;
}
out<<sol<<'\n';
}
}
return 0;
}