Pagini recente » Cod sursa (job #622517) | Cod sursa (job #283727) | Cod sursa (job #404502) | Cod sursa (job #1635786) | Cod sursa (job #2063010)
#include <iostream>
#include <fstream>
#define Nmax 100003
using namespace std;
ifstream fin ("cautbin.in");
ofstream fout("cautbin.out");
int n,v[Nmax];
int Cautare_Binara (int s,int d,int x)
{
int i,j,mij;
i=s;
j=d;
while (i<=j)
{ mij=(i+j)/2;
if (v[mij]==x) return mij;
else if (x<v[mij]) j=mij-1;
else if (x>v[mij]) i=mij+1;
}
return mij;
}
int main()
{
int i,k,x,y;
fin>>n;
for (i=1;i<=n;i++)
fin>>v[i];
fin>>k;
for (i=1;i<=k;i++)
{ int p;
fin>>x>>y;
if (x==0)
{
p=Cautare_Binara(1,n,y);
while (v[p+1]==y) p++;
fout<<p<<"\n";
}
if (x==1)
{
p=Cautare_Binara(1,n,y);
// fout<<p<<"\n";
while (v[p+1]<=y&&p<n) p++;
fout<<p<<"\n";
}
if (x==2)
{
p=Cautare_Binara(1,n,y);
//fout<<p<<"\n";
while (v[p-1]>=y&&p>1) p--;
fout<<p<<"\n";
}
}
return 0;
}