Pagini recente » Clasament concurs_11_12_02_23 | Cod sursa (job #7755) | Cod sursa (job #1293167) | Cod sursa (job #1709804) | Cod sursa (job #1320997)
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("coutbin.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+1<<'\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+1<<'\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+2<<'\n';
}
int main()
{
fin>>n;
for(i=0;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;
}