Pagini recente » Cod sursa (job #2755094) | Cod sursa (job #727448) | Cod sursa (job #1154081) | Cod sursa (job #238562) | Cod sursa (job #2063011)
#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);
if (v[p]==y)
{while (v[p+1]==y) p++;
fout<<p<<"\n";}
else fout<<"-1\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;
}