Pagini recente » Cod sursa (job #1558128) | Cod sursa (job #2948778) | Cod sursa (job #2138078) | Cod sursa (job #2543006) | Cod sursa (job #829258)
Cod sursa(job #829258)
#include<fstream>
using namespace std;
int main()
{
ifstream cin("cautbin.in");
ofstream cout("cautbin.out");
int n, m, v[100005], k, x, mid, st, dr;
cin>>n;
for (int i=1; i<=n; i++)
cin>>v[i];
cin>>m;
for (int j=1; j<=m; j++)
{
cin>>k>>x;
st=0;
dr=n+1;
if (k==0)
{
while (st+1<dr)
{
mid=(st+dr)/2;
if(x<v[mid])
dr=mid;
else
st=mid;
}
if (v[st]==x)
cout<<st<<' ';
else
cout<<"-1 ";
}
if (k==1)
{
while (st+1<dr)
{
mid=(st+dr)/2;
if(x>=v[mid])
st=mid;
else
dr=mid;
}
cout<<st<<' ';
}
if (k==2)
{
while (st+1<dr)
{
mid=(st+dr)/2;
if(x<=v[mid])
st=mid;
else
dr=mid;
}
cout<<st<<" ";
}
}
return 0;
}