Pagini recente » Cod sursa (job #2293210) | Cod sursa (job #2622905) | Cod sursa (job #3234821) | Cod sursa (job #1077297) | Cod sursa (job #860662)
Cod sursa(job #860662)
#include<fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n,m,v[100001],k,x,m,st,dr;
int main()
{
f>>n;
for (int i=1; i<=n; i++)
f>>v[i];
f>>m;
for (int j=1; j<=m; j++)
{
f>>k>>x;
st=0;
dr=n+1;
if (k==0)
{
while (st+1<dr)
{
m=(st+dr)/2;
if(x<v[m])
dr=m;
else
st=m;
}
if (v[st]==x)
g<<st<<"\n";
else
g<<"-1"<<"\n";
}
if (k==1)
{
while (st+1<dr)
{
m=(st+dr)/2;
if(x>=v[m])
st=m;
else
dr=m;
}
g<<st<<"\n";
}
if (k==2)
{
while (st+1<dr)
{
m=(st+dr)/2;
if(x<=v[m])
dr=m;
else
st=m;
}
g<<dr<<"\n";
}
}
return 0;
}