Pagini recente » Cod sursa (job #267522) | Cod sursa (job #591677) | Cod sursa (job #26270) | Cod sursa (job #942878) | Cod sursa (job #1321017)
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int v[100000],j=0,n,m,intr,x,i=0;
void caz0(int x)
{ int step,aux,d=0;
for (step = 1; step < n; step <<= 1);
for (i = 0; step; step >>= 1)
if (i + step <= n && v[i + step] <=x )
i += step;
if(v[i]==x)
fout<<i<<'\n';
else
fout<<-1<<'\n';
}
void caz1(int x)
{
int i, step,aux,d=0;
for (step = 1; step < n; step <<= 1);
for (i = 0; step; step >>= 1)
if (i + step <= n && v[i + step] <=x )
i += step;
fout<<i<<'\n';
}
void caz2(int x)
{ int step,aux,d=0;
for (step = 1; step < n; step <<= 1);
for (i = 0; step; step >>= 1)
if (i + step <= n && v[i + step] <x )
i += step;
fout<<i+1<<'\n';
}
int main()
{
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
fin>>m;
for(j=0;j<m;j++)
{
fin>>intr;
fin>>x;
if(intr==0)
caz0(x);
if(intr==1)
caz1(x);
if(intr==2)
caz2(x);
}
return 0;
}