Pagini recente » Cod sursa (job #316697) | Cod sursa (job #527875) | Cod sursa (job #1785415) | Cod sursa (job #458694) | Cod sursa (job #1830322)
#include<fstream>
int v[10000];
using namespace std;
int n,k;
int cautare1()
{
int st=1,dr=n,pozi=-1;
while(st<=dr)
{
int mij=(st+dr)/2;
if(v[mij]>k)
{
dr=mij-1;
pozi=mij;
}
else
st=mij+1;
}
return pozi;
}
int cautare2()
{
int pozi=-1,st=1,dr=n;
while(st<=dr)
{
int mij=(st+dr)/2;
if(v[mij]>=k)
{
dr=mij-1;
if(v[mij]==k)
pozi=mij;
}
else
st=mij+1;
}
return pozi;
}
int cautare3()
{
int pozi=1,st=1,dr=n;
while(st<=dr)
{
int mij=(st+dr)/2;
if(v[mij]<=k)
{
st=mij+1;
if(v[mij]==k)
pozi=mij;
}
else
dr=mij-1;
}
return pozi;
}
int main()
{
ifstream cin("cautbin.in");
ofstream cout("cautbin.out");
cin>>n;
for(int i=1;i<=n;++i)
cin>>v[i];
cin>>k;
cout<<cautare1()<<endl<<cautare2()<<endl<<cautare3();
}