Pagini recente » Cod sursa (job #1175829) | Cod sursa (job #2616271) | Cod sursa (job #1342830) | Cod sursa (job #2826250) | Cod sursa (job #2059673)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int arr[100001],n;
int cautare(int x)
{
int pas=1<<16,r=0;
while(pas)
{
if(r+pas<=n&&arr[r+pas]<=x)
r+=pas;
pas/=2;
}
return r;
}
int main()
{
int m,i,tip,XD;
in>>n;
for(i=1;i<=n;i++)
in>>arr[i];
in>>m;
while(m--)
{
in>>tip>>i;
XD=cautare(i);
if(tip==0)
{
if(arr[XD]==i)
out<<XD<<"\n";
else
out<<-1<<"\n";
}
else if(tip==1)
out<<XD<<"\n";
else
{
while(arr[XD]==i)
XD--;
out<<XD+1<<"\n";
}
}
return 0;
}