Pagini recente » Cod sursa (job #2209244) | Cod sursa (job #1114913) | Cod sursa (job #2880072) | Cod sursa (job #767488) | Cod sursa (job #1325744)
#include <iostream>
#include <fstream>
using namespace std;
fstream fin("cautbin.in",ios::in),
fout("cautbin.out",ios::out);
int cautare0(int n,int x[100],int E)
{
int st=1,dr=n,sol=-1,m;
while(st<=dr)
{
m=(st+dr)/2;
if(x[m]==E)
{
sol=m;
st=m+1;
}
if(x[m]<E)
{
st=m+1;
}
if(x[m]>E)
{
dr=m-1;
}
}
return sol;
}
int cautare1(int n,int x[100],int E)
{
int st=1,dr=n,sol=-1,m;
while(st<=dr)
{
m=(st+dr)/2;
if(x[m]<=E)
{
sol=m;
st=m+1;
}
if(x[m]>E)
{
dr=m-1;
}
}
return sol;
}
int cautare2(int n,int x[100],int E)
{
int st=1,dr=n,sol=-1,m;
while(st<=dr)
{
m=(st+dr)/2;
if(x[m]>=E)
{
sol=m;
dr=m-1;
}
if(x[m]<E)
{
st=m+1;
}
}
return sol;
}
int main()
{
int N,M,n[100],op,m[100],i;
fin>>N;
for(i=1;i<=N;i++)
{
fin>>n[i];
}
fin>>M;
for(i=1;i=M;i++)
{
fin>>op>>m[i];
if(op==0)
{
fout<<cautare0(N,n,m[i])<<"\n";
}
if(op==1)
{
fout<<cautare1(N,n,m[i])<<"\n";
}
if(op==2)
{
fout<<cautare2(N,n,m[i])<<"\n";
break;
}
}
fin.close();
fout.close();
return 0;
}