Pagini recente » Cod sursa (job #756317) | Cod sursa (job #1125178) | Cod sursa (job #698684) | Cod sursa (job #1566756) | Cod sursa (job #2782800)
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n, x, a[10000];
int cautbinar_0 (int n, int x, int a[])
{
int st = 1;
int dr = n;
int poz = -1;
while (st <= dr)
{
int mid = (st + dr) / 2;
if (x <= a[mid]) dr = mid - 1;
else
{
if (x == a[mid]) poz = mid;
st = mid + 1;
}
}
return poz;
}
int cautbinar_1 (int n, int x, int a[])
{
int st = 1;
int dr = n;
int poz = -1;
while (st <= dr)
{
int mij = (st + dr) / 2;
if (a [mij] <= x)
{
poz = mij;
st = mij + 1;
}
else dr = mij - 1;
}
if (a[poz] <= x) return poz;
}
int cautbinar_2 (int n, int x, int a[])
{
int st = 1;
int dr = n;
int poz = -1;
while (st <= dr)
{
int mij = (st + dr) / 2;
if (a [mij] <= x)
{
dr = mij - 1;
poz = mij;
}
else
{
st = mij + 1;
}
}
return poz;
}
int main()
{
f >> n;
f >> x;
for (int i = 1; i <= n; i ++)
{
f >> a [i];
}
g << cautbinar_0(n, x, a);
g << cautbinar_1(n, x, a);
g << cautbinar_2(n, x, a);
return 0;
}