Pagini recente » Cod sursa (job #1896340) | Cod sursa (job #1366655) | Istoria paginii runda/emagcluj_9_2016_3/clasament | Istoria paginii runda/rar30/clasament | Cod sursa (job #3141198)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("cautbin.in");
ofstream fout ("cautbin.out");
int main()
{
int n,m,i,v[100001],cer,nr;
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
fin>>m;
while(m)
{
fin>>cer>>nr;
if(cer==0)
{
int st=1,dr=n,mij;
while(st<dr)
{
mij=(st+dr+1)/2;
if(v[mij]<=nr) st=mij;
else dr=mij-1;
}
if(v[st]==nr) fout<<st<<endl;
else fout<<-1<<endl;
}
else if(cer==1)
{
int st=1,dr=n,mij;
while(st<dr)
{
mij=(st+dr+1)/2;
if(v[mij]<=nr) st=mij;
else dr=mij-1;
}
fout<<st<<endl;
}
else
{
int st=1,dr=n,mij;
while(st<dr)
{
mij=(st+dr)/2;
if(v[mij]<nr) st=mij+1;
else dr=mij;
}
fout<<st<<endl;
}
m--;
}
return 0;
}