Pagini recente » Cod sursa (job #847676) | Cod sursa (job #2759548) | Cod sursa (job #1978870) | Rating Stefan (Stefan2712) | Cod sursa (job #2634346)
#include <iostream>
using namespace std;
int poz_max(int n, int v[], int x)
{
int st, dr, mij;
st=1;
dr=n;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]>x)dr=dr-1;
else st=st+1;
}
mij=(st+dr)/2;
if(v[mij]>x) mij--;
if(v[mij]==x) return mij;
else return -1;
}
int poz_max2(int n, int v[], int x)
{
int st,dr,mij;
st=1;
dr=n;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]>=x)dr=dr-1;
else st=st+1;
}
mij=(st+dr)/2;
if(v[mij]>x) mij=mij-1;
if(v[mij]<=x) return mij;
else return 0;
}
int poz_min(int n, int v[], int x)
{
int st,dr,mij;
st=1;
dr=n;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]>=x)dr=dr-1;
else st=st+1;
}
mij=(st+dr)/2;
if(v[mij]<x)mij=mij+1;
if(v[mij]>=x)return mij;
else return -1;
}
int main()
{
int n,v[200],x,i;
cin>>n;
for(i=1; i<=n; i++)
cin>>v[i];
cin>>x;
cout<<poz_min(n,v,x);
}