Pagini recente » Cod sursa (job #339911) | Cod sursa (job #1383593) | Statistici Laurentiu Neagu (Lawrenciu317) | Cod sursa (job #2093899) | Cod sursa (job #1527461)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int a[105],l,opt,poz,nr,nri,i;
int cautare0(int st,int numar,int dr)
{
int mij;
mij=(st+dr)/2;
if (st>dr)
return dr;
else if(numar>=a[mij])
return cautare0(mij+1,numar,dr);
else if(numar<a[mij])
return cautare0(st,numar,mij-1);
}
int cautare1(int st,int numar,int dr)
{
int mij;
mij=(st+dr)/2;
if (st>dr)
return dr;
else if(numar>a[mij])
return cautare0(mij+1,numar,dr);
else if(numar<=a[mij])
return cautare0(st,numar,mij-1);
}
int citire(int i = 0)
{
if(i==l)
return 0;
f>>a[i];
i++;
return citire(i);
}
int main()
{
f>>l;
citire();
f>>nri;
for(i=0;i<nri;i++)
{
f>>opt;
int jean;
if(opt==0)
{
f>>nr;
jean=cautare0(0,nr,l-1);
if (a[jean]!=nr)
g<<"-1";
else
g<<jean+1;
g<<"\n";
}
if(opt==1)
{
f>>nr;
g<<cautare0(0,nr,l-1);
}
if(opt==2)
{f>>nr;
g<<"\n"<<cautare1(0,nr,l-1)+2;
}
}
return 0;
}