Pagini recente » Cod sursa (job #1622396) | Cod sursa (job #2318324) | Cod sursa (job #587137) | Cod sursa (job #2068072) | Cod sursa (job #1955747)
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n, m, vec[100005], STEP;
int main()
{
int tip,x,i,step;
fin>>n;
for(i = 1; i <= n; i++)
fin>>vec[i];
for(STEP = 1; STEP <= n; STEP <<= 1);
fin>>m;
for(; m; m--)
{
fin>>tip>>x;
if(tip < 2)
{
for(step = STEP, i = 0; step; step >>= 1)
if(i + step <= n && vec[i + step] <= x)
i += step;
if(!tip && vec[i] != x)
fout<<"-1\n";
else
fout<<i<<"\n";
continue;
}
for(step = STEP, i = n; step; step>>=1)
if(i - step > 0 && vec[i - step] >= x)
i -= step;
fout<<i<<"\n";
}
return 0;
}