Pagini recente » Cod sursa (job #2082902) | Cod sursa (job #2154666) | Cod sursa (job #959535) | Cod sursa (job #1127350) | Cod sursa (job #869561)
Cod sursa(job #869561)
#include<iostream>
#include<fstream>
using namespace std;
int n,x,v[100000],j,m,k,tip,val;
int main()
{
ifstream f("cautbin.in");
ofstream g("cautbin.out");
f>>n;
for (int i=1;i<=n;i++)
f>>v[i];
f>>k;
for(j=1;j<=k;j++)
{
f>>tip>>x;
int st=0, dr=n+1;
if(tip==0)
{
while(st+1<dr)
{
m=(st+dr)/2;
if(x<v[m])
dr=m;
else
st=m;
}
if(v[st]==x)
g<<st<<endl;
else g<<"-1"<<endl;
}
else
if(tip==1)
{
while(st+1<dr)
{
m=(st+dr)/2;
if(x>=v[m])
st=m;
else
dr=m;
}
g<<st<<endl;
}
else
if(tip==2)
{
while(st+1<dr)
{
m=(st+dr)/2;
if(x<=v[m])
dr=m;
else
st=m;
}
g<<dr<<endl;
}
}
return 0;
}