Pagini recente » Cod sursa (job #124196) | Cod sursa (job #1698123) | Cod sursa (job #1667059) | Cod sursa (job #1610993) | Cod sursa (job #1630148)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n,m,logN;
int v[100100];
int main()
{
fin>>n;
for (int i=1; i<=n; ++i) fin>>v[i];
for (logN=1; logN<=n; logN<<=1);
fin>>m;
while (m--)
{
int cod,val;
fin>>cod>>val;
if (cod<2) {
int i=0;
for (int step=logN; step; step>>=1)
if (i+step<=n&&v[i+step]<=val)
i+=step;
if (!cod&&v[i]!=val) fout<<"-1\n";
else fout<<i<<'\n';
}
else {
int i=n;
for (int step=logN; step; step>>=1)
if (i-step>0&&v[i-step]>=val)
i-=step;
fout<<i<<'\n';
}
}
return 0;
}