Pagini recente » Cod sursa (job #767843) | Cod sursa (job #889346) | Cod sursa (job #1230453) | Cod sursa (job #2757883) | Cod sursa (job #1325741)
#include<fstream>
#include<iostream>
using namespace std;
fstream fin ("cautbin.in",ios::in),
fout("cautbin.out",ios::out);
int v[101000],n;
int cautare( int x, int st, int dr)
{ int m,i;
m=((st+dr)/2);
if (st>dr)
return -1;
if (v[m]==x)
{ i=1;
while (x==v[m+i]) i++; return m+i-1;}
if (x==v[dr]) return dr;
if (x==v[st]) return st;
if(x>m)
{
st=m; return cautare(x,st,dr);
}
else
{
dr=m; return cautare(x,st,dr);
}
}
int main ()
{
int x,i,st,dr;
fin>>n;
for (i=1;i<=n;i++)
fin>>v[i];
st=v[1]; dr=v[n];
fin>>x;
fout<<cautare(x,st,dr)<<endl;
fout<<cautare(x,st,dr)-1<<endl;
fout<<cautare(x,st,dr)+1;
fin.close();
fout.close();
}