Pagini recente » Cod sursa (job #695362) | Cod sursa (job #2538691) | Cod sursa (job #1460923) | Cod sursa (job #2781626) | Cod sursa (job #898785)
Cod sursa(job #898785)
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int m,v[1000],i,n,intr,mij,trb;
int cautare_binara(int x)
{
int st,dr,m;
st=0;
dr=n+1;
m=0;
while(v[m]!=x)
{
m=st+(dr-st)/2;
if(v[m]>x)
st=m+1;
else
dr=m-1;
}
return m;
}
int main()
{
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
fin>>m;
for(i=1;i<=m;i++)
{
int j;
fin>>trb;
fin>>intr;
mij=cautare_binara(intr);
j=mij;
while(v[j]==v[mij])
j++;
j--;
mij=j;
if(trb==0)
if(v[mij]!=intr)
fout<<'-1'<<'\n';
else
fout<<mij;
if(trb==1)
fout<<mij;
j=mij;
if(trb==2)
{
while(v[j]==v[mij])
mij--;
fout<<mij+1;
}
fout<<'\n';
}
return 0;
}