Pagini recente » Cod sursa (job #1573147) | Cod sursa (job #2106235) | Cod sursa (job #1301467) | Cod sursa (job #1720293) | Cod sursa (job #1949765)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int v[100001],li,ls,mij,n,x;
int cautbin0()
{
li=1;
ls=n;
while(li<=ls)
{
mij=(li+ls)/2;
if(v[mij]<=x)
li=mij+1;
else
ls=mij-1;
}
if(v[ls]==x)
return ls;
return -1;
}
int cautbin1()
{
li=1;
ls=n;
while(li<=ls)
{
mij=(li+ls)/2;
if(v[mij]<=x)
li=mij+1;
else
ls=mij-1;
}
return ls;
}
int cautbin2()
{
li=1;
ls=n;
while(li<=ls)
{
mij=(li+ls)/2;
if(v[mij]>=x)
ls=mij-1;
else li=mij+1;
}
return li;
}
int main()
{
in>>n;
for(int i=1;i<=n;i++)
in>>v[i];
int y,m;
in>>m;
for(int i=1;i<=m;i++)
{
in>>y>>x;
if(y==0)
out<<cautbin0()<<'\n';
if(y==1)
out<<cautbin1()<<'\n';
if(y==2)
out<<cautbin2()<<'\n';
}
return 0;
}