Pagini recente » Cod sursa (job #2182510) | Cod sursa (job #974210) | Cod sursa (job #394208) | Cod sursa (job #1419816) | Cod sursa (job #2650690)
#include <iostream>
#include <fstream>
using namespace std;
int n,m,a[100001];
int cautareBinara1(int st,int dr,int x)
{
while(st<=dr)
{
int mij=st+(dr-st)/2;
if(x==a[mij])
{
return mij;
}
if(x>a[mij])
st=mij+1;
else
dr=mij-1;
}
return -1;
}
int cautareBinara2(int st,int dr,int x)
{
while(st<=dr)
{
int mij=st+(dr-st)/2;
if(x<=a[mij])
{
return mij;
}
if(x>a[mij])
st=mij+1;
else
dr=mij-1;
}
return 0;
}
int cautareBinara3(int st,int dr,int x)
{
while(st<=dr)
{
int mij=st+(dr-st)/2;
if(x>=a[mij])
{
return mij;
}
if(x>a[mij])
st=mij+1;
else
dr=mij-1;
}
return 0;
}
int main()
{
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
fin>>n;
for(int i=0;i<n;i++)
fin>>a[i];
fin>>m;
for(int j=0;j<m;j++)
{
int x,y;
fin>>x>>y;
if(x==0)
{
int val;
for(int i=0;i<n;i++)
{
val=0;
val=cautareBinara1(0,n-1,a[i]);
}
fout<<val<<"\n";
}
if(x==1)
{
int val2;
for(int i=0;i<n;i++)
{
val2=0;
val2=cautareBinara2(0,n-1,a[i]);
}
fout<<val2<<"\n";
}
if(x==2)
{
int val3;
for(int i=n-1;i>0;i--)
{
val3=0;
val3=cautareBinara3(0,n-1,a[i]);
}
fout<<val3;
}
}
return 0;
}