Pagini recente » Cod sursa (job #417921) | Cod sursa (job #2053472) | Cod sursa (job #2055950) | Cod sursa (job #558739) | Cod sursa (job #2608972)
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int v[100001],n;
int CautareBinara0(int left, int right, int x)
{
if(left>right)
return -1;
else
{
int mid=(left+right)/2;
if(x==v[mid])
if(x==v[mid+1])
return CautareBinara0(mid+1, right, x);
else
return mid;
if(x<v[mid])
return CautareBinara0(left, mid-1, x);
else
return CautareBinara0(mid+1, right, x);
}
}
int CautareBinara1(int left, int right, int x)
{
if(v[right]<=x)
return right;
else
return CautareBinara1(left, right-1, x);
}
int CautareBinara2(int left, int right, int x)
{
if(v[left]>=x)
return left;
else
return CautareBinara2(left+1, right, x);
}
int main()
{
int m,x,y;
f>>n;
for(int i=1;i<=n;i++)
f>>v[i];
f>>m;
for(int j=0;j<m;j++)
{
f>>y;
if(y==0)
{
f>>x;
g<<CautareBinara0(1,n,x)<<'\n';
}
if(y==1)
{
f>>x;
g<<CautareBinara1(1,n,x)<<'\n';
}
if(y==2)
{
f>>x;
g<<CautareBinara2(1,n,x)<<'\n';
}
}
return 0;
}