Pagini recente » Cod sursa (job #2625248) | Cod sursa (job #2782400) | Cod sursa (job #1464201) | Cod sursa (job #1053992) | Cod sursa (job #1424775)
#include <iostream>
#include <fstream>
using namespace std;
int v[100001];
int main()
{
ifstream fin ("cautbin.in");
ofstream fout ("cautbin.out");
int i,m,n,nr,ask,pas,x,k;
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
fin>>m;
i=0;
while(nr<=n)
{
i++;
nr=1<<i;
}
//cout<<nr;
for(k=1;k<=m;k++)
{
fin>>ask>>x;
//cout<<ask<<" ";
i=0;
pas=nr;
if(ask==0)
{
while(pas!=0)
{
if(i+pas<=n && v[i+pas]<=x)
i+=pas;
pas/=2;
}
if(v[i]!=x)
fout<<"-1";
else
fout<<i<<endl;
}
if(ask==1)
{
while(pas!=0)
{
if(i+pas<=n && v[i+pas]<=x)
i+=pas;
pas/=2;
}
fout<<i<<endl;
}
if(ask==2)
{
while(pas!=0)
{
if(i+pas<=n && v[i+pas]<x)
i+=pas;
pas/=2;
}
fout<<i+1<<endl;
}
}
return 0;
}