Pagini recente » Cod sursa (job #1809861) | Cod sursa (job #1930718) | Cod sursa (job #1861683) | Cod sursa (job #855692) | Cod sursa (job #1901728)
#include <iostream>
#include <fstream>
using namespace std;
int n, sir[100001], numarDorit, m;
short cerinta;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int cautareBin0(int vec[], int nr, int i, int s)
{
int mid;
while(s-i>1)
{
mid=(s+i)/2;
if(vec[mid]<=nr)
{
i=mid;
}
else
{
s=mid;
}
}
if(vec[s]==nr)
return s;
else
return i;
}
int cautareBin1(int vec[], int nr, int i, int s)
{
int mid;
while(s-i>1)
{
mid=(s+i)/2;
if(vec[mid]<=nr)
{
i=mid;
}
else
{
s=mid;
}
}
if(vec[s]<=nr)
return s;
else
return i;
}
int cautareBin2(int vec[], int nr, int i, int s)
{
int mid;
while(s-i>1)
{
mid=(s+i)/2;
if(vec[mid]>=nr)
{
s=mid;
}
else
{
i=mid;
}
}
if(vec[i]>=nr)
return i;
else
return s;
}
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>sir[i];
}
fin>>m;
for(int i=1;i<=m;i++)
{
fin>>cerinta>>numarDorit;
if(cerinta==0)
fout<<cautareBin0(sir,numarDorit,1,n)<<'\n';
else if(cerinta==1)
fout<<cautareBin1(sir,numarDorit,1,n)<<'\n';
else
fout<<cautareBin2(sir,numarDorit,1,n)<<'\n';
}
return 0;
}