Pagini recente » Cod sursa (job #1258967) | Cod sursa (job #2889034) | Cod sursa (job #291047) | Cod sursa (job #135282) | Cod sursa (job #490425)
Cod sursa(job #490425)
#include <fstream>
using namespace std;
int v[100001],x,m,n,k;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int caut0(int x)
{
int i,pas (1<<16);
for (i=0;pas!=0; pas>>=1)
if (i+pas<=n && v[i+pas]<=x)
i+=pas;
if (v[i]!=x)
return -1;
else return i;
}
int caut1(int x)
{
int i,pas (1<<16);
for (i=0;pas!=0; pas>>=1)
if (i+pas<=n && v[i+pas]<=x)
i+=pas;
return i;
}
int caut2(int x)
{
int i,pas (1<<16);
for (i=0;pas!=0; pas>>=1)
if (i+pas<=n && v[i+pas]<x)
i+=pas;
return i+1;
}
int main()
{
int j,l;
in>>n;
for (j=1; j<=n;j++)
in>>v[j];
in>>m;
for (j=0;j<m;j++)
{
in>>k>>x;
if (k==0)
l=caut0(x);
if (k==1)
l=caut1(x);
if (k==2)
l=caut2(x);
out<<l<<"\n";
}
}