Pagini recente » Cod sursa (job #2706542) | Cod sursa (job #2218208) | Cod sursa (job #2697121) | Cod sursa (job #1089451) | Cod sursa (job #1314493)
#include<iostream>
#include<fstream>
using namespace std;
int s,d,n,m,a[100000],i,o,st,dr,p,x,op,stanga,dreapta;
int caut (int s, int d)
{
if(s>d)
return -1;
else
{
p =(s+d)/2;
if (x==a[p])
return p;
if (x<a[p])
{stanga=s;dreapta=p-1; return caut(s,p-1); }
else
{stanga=p+1;dreapta=d; return caut(p+1,d); }
}
}
int main()
{
ifstream f("cautbin.in");
ofstream g("cautbin.out");
f>>n;
for(i=1;i<=n;i++) f>>a[i];
f>>m;
while(m>0)
{
f>>op>>x;
if(op==0)
{st=1; dr=n; o=-1;
while(caut(st,dr)!=-1)
{o=caut(st,dr);
st=o+1;}
g<<o<<"\n";
}
else if (op==1)
{st=1; dr=n; o=-1;
if(caut(st,dr)==-1) {caut(st,dr); g<<dreapta<<"\n";}
else {while(caut(st,dr)!=-1)
{o=caut(st,dr);
st=o+1;}
g<<o<<"\n";}
}
else
{st=1; dr=n; o=-1;
if(caut(st,dr)==-1) {caut(st,dr); g<<stanga<<"\n";}
else {while(caut(st,dr)!=-1)
{o=caut(st,dr);
dr=o-1;}
g<<o<<"\n";}
}
m--;
}
f.close();
g.close();
return 0;
}