Pagini recente » Cod sursa (job #1047960) | Cod sursa (job #846822) | Cod sursa (job #3216149) | Cod sursa (job #1101994) | Cod sursa (job #1325735)
#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 cautare2( int x, int st, int dr)
{ int m,i;
fout<<cautare(x,st,dr)-1<<" "<<endl;
}
int cautare3( int x, int st, int dr)
{ int m,i;
fout<<cautare(x,st,dr)+1<<" ";
}
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;
cautare2(x,st,dr);
cautare3(x,st,dr);
fin.close();
fout.close();
}