Pagini recente » Cod sursa (job #2750034) | Cod sursa (job #2268622) | Cod sursa (job #446300) | Cod sursa (job #106493) | Cod sursa (job #1631160)
#include <fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int v[100001];
int main()
{
int n,m,i,gasit=0,st,dr,mij,nr,c,d,k,j,x;
in>>n;
st=1;
dr=n;
for(i=1; i<=n; i++)
{
in>>v[i];
}
in>>m;
for(i=1;i<=m;i++)
{
in>>d;
in>>x;
while(gasit==0 && st<=dr)
{
mij=(st+dr)/2;
if(x>v[mij])
st=mij+1;
else if(x<v[mij])
dr=mij-1;
else if(x==v[mij])
{
gasit=1;
nr=mij;
}
}
if(d==0)
{
while(v[nr]==x)
{
nr++;
}
out<<nr-1<<'\n';
}
if(d==1)
{
while(v[nr]<=x)
{
nr++;
}
out<<nr-1<<'\n';
}
if(d==2)
{
while(v[nr]>=x)
{
nr--;
}
out<<nr+1;
}
}
return 0;
}