Pagini recente » Orlando lanseaza un motor de cautare romanesc | Cod sursa (job #1681246) | Monitorul de evaluare | Cod sursa (job #2826396) | Cod sursa (job #2404846)
#include <fstream>
using namespace std;
int CautBin0 (int n, int a[], int x)
{
int st, dr, poz=-1, mij;
st=1; dr=n;
while(st<=dr)
{
mij=st+(dr-st)/2;
if(x<a[mij])
dr=mij-1;
else if(x>a[mij])
st=mij+1;
else {
poz=mij;
st=mij+1;
}
}
return poz;
}
int CautBin1 (int n, int a[], int x)
{
int st, dr, poz, mij;
st=1; dr=n;
while(st<=dr)
{
mij=st+(dr-st)/2;
if(x<a[mij])
dr=mij-1;
else
{
poz=mij;
st=mij+1;
}
}
return poz;
}
int CautBin2 (int n, int a[], int x)
{
int st, dr, poz, mij;
st=1; dr=n;
while(st<=dr)
{
mij=st+(dr-st)/2;
if(x>a[mij])
st=mij+1;
else
{
poz=mij;
dr=mij-1;
}
}
return poz;
}
int main()
{
int n,m, a[100001];
ifstream f("cautbin.in");
ofstream g("cautbin.out");
f>>n;
for(int i=1; i<=n; i++)
f>>a[i];
f>>m;
int tip,x;
for(int i=1;i<=m;++i)
{
f>>tip>>x;
if(tip==0)
g<<CautBin0(n,a,x)<<"\n";
if(tip==1)
g<<CautBin1(n,a,x)<<"\n";
if(tip==2)
g<<CautBin2(n,a,x)<<"\n";
}
f.close();
g.close();
return 0;
}