Pagini recente » Cod sursa (job #245727) | Cod sursa (job #2885140) | Cod sursa (job #2823360) | Cod sursa (job #278412) | Cod sursa (job #1315414)
#include <iostream>
#include<fstream>
#include<algorithm>
using namespace std;
int a[100010],n,m;
int cautare(int x)
{
int poz,pas;
poz=0;
pas=(1<<17);
pas=(1<<17);
while(pas>>=1)
{
if(poz+pas < n && a[poz+pas]<=x)
poz+=pas;
}
return poz;
}
int cautare1(int x)
{
int poz,pas;
poz=0;
pas=(1<<17);
while(pas>>=1)
{
if(poz+pas <=n && a[poz+pas]<x)
poz+=pas;
}
return poz;
}
void citire()
{
int i,op,x,poz;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
fin>>n;
for(i=1;i<=n;i++)
fin>>a[i];
fin>>m;
for(i=1;i<=m;i++)
{
fin>>op>>x;
if(op<2)
{
poz=cautare(x);
if(op==0 && a[poz]!=x)
fout<<"-1\n";
else
fout<<poz<<"\n";
}
else
{
poz=cautare1(x);
fout<<poz+1<<"\n";
}
}
fin.close();
fout.close();
}
int main()
{
citire();
return 0;
}