Pagini recente » Cod sursa (job #864959) | Cod sursa (job #2558272) | Cod sursa (job #378579) | Cod sursa (job #1070304) | Cod sursa (job #1631047)
#include <fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int main()
{
int n,v[100001],mij,dr,st=0,i,x,cmij,cmij2,j,m;
bool gasit=0;
in>>n;
dr=n-1;
for(i=0;i<=n-1;i++)
in>>v[i];
in>>m;
for(i=1;i<=m;i++)
{
in>>j>>x;
while(gasit==0 && st<=dr)
{
mij=(st+dr)/2;
if(x>v[mij])
st=mij;
else
if(x<v[mij])
dr=mij;
if(x==v[mij])
gasit=1;
}
if(j==0)
{
if(st>dr)
out<<-1;
else
{
while(v[mij]==x)
mij++;
out<<mij<<'\n';
}
}
else
if(j==1)
{
while(v[mij]<=x)
mij++;
out<<mij;
}
else
if(j==2)
{
while(v[mij]==x)
mij--;
out<<'\n'<<mij-2; ;
}
}
return 0;
}