Pagini recente » Cod sursa (job #549393) | Cod sursa (job #910290) | Cod sursa (job #649650) | Cod sursa (job #889961) | Cod sursa (job #655216)
Cod sursa(job #655216)
#include <iostream>
#include <fstream>
using namespace std;
int v[100001], N, mij, x;
int cautare0(int x, int inf, int sup)
{
if (inf<=sup)
{mij=inf+(sup-inf)/2;
if(v[mij]==x) return mij;
else
if (v[mij]<x) cautare0(x,mij+1,sup);
else
cautare0(x,inf,mij-1);}
else return -1;
}
int cautare1 (int x, int inf, int sup)
{
if (inf<sup)
{mij=inf+(sup-inf)/2;
if ((v[mij]<=x)&&(v[mij]<=v[mij+1]))
cautare1(x,mij+1,sup);
else
if (v[mij]<=x) return mij;
else cautare1(x,inf,mij-1);}
else return 0;
}
int cautare2 (int x, int inf, int sup)
{
if (inf<sup)
{mij=inf+(sup-inf)/2;
if ((v[mij]>=x)&& (v[mij-1]>=v[mij]))
cautare2(x,inf,mij-1);
else
if (v[mij]>=x) return mij;
else cautare2(x,mij+1,sup);}
else return 0;
}
int main()
{
ifstream f("cautbin.in");
ofstream g("cautbin.out");
f>>N;
for (int i=1; i<=N; i++)
f>>v[i];
g<<cautare0(x,1,N)<<endl;
g<<cautare1(x,1,N)<<endl;
g<<cautare2(x,1,N)<<endl;
}