Pagini recente » Cod sursa (job #441591) | Cod sursa (job #1593019) | Cod sursa (job #1041566) | Cod sursa (job #1284898) | Cod sursa (job #1372165)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int main()
{
int n,i,j,m,tip,x,li,ls;
long long mij;
in>>n;
int v[n+1];
for(i=1;i<=n;i++) in>>v[i];
in>>m;
for(i=1;i<=m;i++)
{
li=1;
ls=n;
in>>tip>>x;
if(tip==0)
{
while(li<ls)
{
mij=(long long)(li+ls+1)/2;
if(x>=v[mij]) li=mij;
else ls=mij-1;
}
if(x==v[li]) out<<li;
else out<<-1;
out<<"\n";
}
else if(tip==1)
{
while(li<ls)
{
mij=(long long)(li+ls+1)/2;
if(x>=v[mij]) li=mij;
else ls=mij-1;
}
if(x==v[li]) out<<li;
else out<<li-1;
out<<"\n";
}
else
{
while(li<ls)
{
mij=(long long)(li+ls)/2;
if(x<=v[mij]) ls=mij;
else li=mij+1;
}
if(x==v[li]) out<<li;
else out<<li+1;
out<<"\n";
}
}
return 0;
}