Pagini recente » Cod sursa (job #2766828) | Cod sursa (job #1092098) | Cod sursa (job #1177785) | Cod sursa (job #1903430) | Cod sursa (job #1415600)
#include<fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
const int MMAX = 100001;
int v[MMAX], n;
int bin1(int x)
{
int ls, ld, mij;
ls=1;
ld=n;
while(ls<=ld)
{
mij = ls + (ld - ls)/2;
if( x >= v[mij] )
{
ls = mij + 1;
}
else
{
ld = mij - 1;
}
}
return ld;
}
int bin2(int x)
{
int ls, ld, mij;
ls=1;
ld=n;
while(ls<=ld)
{
mij = ls + (ld - ls)/2;
if( x > v[mij] )
{
ls = mij + 1;
}
else
{
ld = mij - 1;
}
}
return ls;
}
int main()
{
int m, intreb, b, j;
fin>>n;
for(j=1; j<=n; j++)
{
fin>>v[j];
}
fin>>m;
for(j=1; j<=m; j++)
{
fin>>intreb>>b;
if(intreb == 0)
{
if( v[bin1(b)] != b ) fout<<-1<<"\n";
else fout<<bin1(b)<<"\n";
}
else if(intreb == 1)
{
if( v[bin1(b)] != b ) fout<<-1<<"\n";
else fout<<bin1(b)<<"\n";
}
else
{
fout<<bin2(b)<<"\n";
}
}
return 0;
}