Pagini recente » Cod sursa (job #2663393) | Cod sursa (job #479178) | Cod sursa (job #522763) | Cod sursa (job #2125401) | Cod sursa (job #2252097)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fi("cautbin.in");
ofstream fo("cautbin.out");
long long n,caz,cautat,nrTeste,a[100005];
int main()
{
fi>>n;
for(int i=1;i<=n;i++)
fi>>a[i];
fi>>nrTeste;
for(int i=1;i<=nrTeste;i++)
{
fi>>caz>>cautat;
long long poz=0;
if(caz==0)
{
for(int i=(1<<30);i>0;i/=2)
{
if(poz+i<=n && a[poz+i]<=cautat )
{
poz+=i;
}
}
if(a[poz]==cautat)
fo<<poz<<endl;
else
fo<<-1<<endl;
}
if(caz==1)
{
for(int i=(1<<30);i>0;i/=2)
{
if(poz+i<=n && a[poz+i]<=cautat )
{
poz+=i;
}
}
fo<<poz<<endl;
}
if(caz==2)
{
for(int i=(1<<30);i>0;i/=2)
{
if(poz+i<=n && a[poz+i]<cautat )
{
poz+=i;
}
}
if(a[poz+1]==cautat)
poz++;
fo<<poz<<endl;
}
}
return 0;
}