Pagini recente » Cod sursa (job #713401) | Cod sursa (job #1219280) | Cod sursa (job #1350112) | Cod sursa (job #1672876) | Cod sursa (job #1325752)
#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],j,i;
fin>>N;
for(i=1;i<=N;i++)
{
fin>>n[i];
}
fin>>M;
for(j=1;j=M;j++)
{
fin>>op>>m[j];
if(op==0)
{
fout<<cautare0(N,n,m[j])<<"\n";
}
if(op==1)
{
fout<<cautare1(N,n,m[j])<<"\n";
}
if(op==2)
{
fout<<cautare2(N,n,m[j])<<"\n";
}
}
fin.close();
fout.close();
return 0;
}