Pagini recente » Statisticile problemei Poly2 | Borderou de evaluare (job #797893) | Cod sursa (job #3219401) | Rezultatele filtrării | Cod sursa (job #845797)
Cod sursa(job #845797)
#include <fstream>
#define MAXN 100001
using namespace std;
ifstream is("cautbin.in");
ofstream os("cautbin.out");
int M,N;
int v[MAXN];
int main()
{
int st,dr,mid,n,x,poz,cmmv;
st = 1;
is>>n;
dr=n;
for(int i=0;i<n;i++)
is>>v[i];
is>>x;
while(st <= dr)
{
mid = (st+dr)/2;
if( v[mid] < x )
{
st = mid+1;
}
else if( v[mid] == x)
{
st = mid+1;
poz = mid;
}
else
dr = mid-1;
}
if(x==mid)
os<<poz;
else
os<<"-1";
while(st <= dr)
{
mid = (st+dr)/2;
if( v[mid] < poz )
{
st = mid+1;
}
else if( v[mid] == poz)
{
st = mid+1;
cmmv = mid;
}
else
dr = mid-1;
}
os<<cmmv;
is.close();
os.close();
return 0;
}