Pagini recente » Cod sursa (job #2098592) | Cod sursa (job #2479629) | Cod sursa (job #1705135) | Cod sursa (job #3194292) | Cod sursa (job #2608961)
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int v[100000];
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, x);
else
return CautareBinara0(mid, 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,n,x,y;
f>>n;
for(int i=1;i<=n;i++)
f>>v[i];
f>>m;
for(int i=0;i<m;i++)
{
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;
}